【发布时间】:2017-11-21 10:56:01
【问题描述】:
所以我有一个如下定义的连接模型:
class EventTrack(models.Model):
dj = models.ForeignKey(DjProfile, blank=True)
track = models.ForeignKey(Track, blank=True)
event = models.ForeignKey(Event, blank=True)
def __str__(self):
return '%s - %s' % (self.event, self.track)
有没有办法可以在这个模型上使用django-autocomplete-light? 我知道如何将它与内联模型一起使用,但我不知道如何将它与标准字段一起使用(在这种情况下它们是 fk)。
目前我有以下内容,其中不包括自动完成功能:
class EventTrackAdmin(admin.ModelAdmin):
fields = ['event', 'dj', 'track']
list_display = ('event', 'dj', 'track')
search_fields = ['event', 'dj', 'track']
admin.site.register(EventTrack, EventTrackAdmin)
编辑:
我定义了一个 DjForm 如下:
class DjForm(ModelForm):
dj = ModelChoiceField(
queryset=DjProfile.objects.all(),
widget=autocomplete.ModelSelect2(url='dj-autocomplete')
)
class Meta:
model = DjProfile
fields = '__all__'
观看次数:
@method_decorator(login_required, name='dispatch')
class DjProfileAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
# Don't forget to filter out results depending on the visitor !
if not self.request.user.is_authenticated():
return DjProfile.objects.none()
qs = DjProfile.objects.all()
if self.q:
qs = qs.filter(name__istartswith=self.q)
return qs
和路由:
from frontend.views import DjProfileAutocomplete
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^dj-autocomplete/$', DjProfileAutocomplete.as_view(create_field='name'), name='dj-autocomplete'),
]
一切正常,如果我浏览端点,我会得到带有 Djs 结果的 json。我唯一的问题是在管理员的 EventTrack 模型中使用它。
【问题讨论】:
标签: django-admin django-1.10 django-autocomplete-light