Django自动完成light,taggit和管理界面
发布时间:2020-12-20 11:32:46 所属栏目:Python 来源:网络整理
导读:我正在尝试在管理表单上使用autocomplete_light和taggit. 我已经阅读了有关集成autocomplete light和taggit here的文档, 以及关于在管理员here中集成自动完成灯的文档.但似乎很少(或没有)讨论同时进行两者. 到目前为止我得到了什么. 在models.py中: from dj
我正在尝试在管理表单上使用autocomplete_light和taggit.
我已经阅读了有关集成autocomplete light和taggit here的文档, 到目前为止我得到了什么. 在models.py中: from django.db import models from taggit.managers import TaggableManager from taggit.models import TagBase,GenericTaggedItemBase class MyTag(TagBase): description = models.CharField(max_length = 250,blank = True,null = True) class MyTagThroughModel(GenericTaggedItemBase): tag = models.ForeignKey(MyTag,related_name = "tagged_items") class MyModel(models.Model): Name = models.CharField(max_length = 200) ... tags = TaggableManager(through = MyTagThroughModel) 在autocomplete_light_registry.py中: import autocomplete_light from models import MyTag autocomplete_light.register(MyTag) 我是怎么构建admin.py的? 如果这是非管理员表单,则该字段将被指定为: tags = TagField(widget = TagWidget('MyTagAutocomplete')) 如果这是一个非taggit管理表单,我会将以下内容添加到admin模型类: form = autocomplete_light.modelform_factory(MyTag) 我该如何将两者结合起来? 解决方法
以下是自动填充标签的示例.它向您展示了autocomplete_light和taggit如何在管理员和非管理员表单上工作. models.py from django.db import models from taggit.managers import TaggableManager class MyModel(models.Model): name = models.CharField(max_length = 200) tags = TaggableManager(blank=True) autocomplete_light_registry.py import autocomplete_light from taggit.models import Tag autocomplete_light.register(Tag) forms.py from django import forms import autocomplete_light from autocomplete_light.contrib import taggit_tagfield from models import MyModel class MyModelForm(forms.ModelForm): tags = taggit_tagfield.TagField(widget=taggit_tagfield.TagWidget('TagAutocomplete')) class Meta: model = MyModel widgets = { 'tags': autocomplete_light.TextWidget('TagAutocomplete'),} admin.py from django.contrib import admin import autocomplete_light from models import MyModel from forms import MyModelForm class MyModelAdmin(admin.ModelAdmin): form = MyModelForm model = MyModel admin.site.register(MyModel,MyModelAdmin) views.py from django.views.generic.edit import CreateView from models import MyModel from forms import MyModelForm class CreateMyModel(CreateView): model = MyModel form_class = MyModelForm urls.py from django.conf.urls import patterns,url from views import CreateMyModel urlpatterns = patterns('',url(r'^create/$',CreateMyModel.as_view()),) 与您正在查看的文档相比,quick docs似乎更容易理解. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |