【问题标题】:Django autocomplete light queryset filterDjango 自动完成轻量查询集过滤器
【发布时间】:2017-06-07 20:37:16
【问题描述】:

型号

class Reservation(models.Model):
    company = models.ForeignKey(GuestContact, on_delete=models.PROTECT)

class GuestContact(models.Model):
    company = models.CharField(max_lenght=30)
    last_name = models.CharField(max_lenght=30)
    first_name = models.CharField(max_lenght=30)
    contact_genere_id = models.ForeignKey(ContactGenere, on_delete=models.PROTECT) # 1 = company 2 = guest

表格

class ReservationForm(ModelForm):

    class Meta:
        model = Reservation
        fields = '__all__'
        widgets = {
            'company': autocomplete.ModelSelect2()
    }

观看次数

class GuestContactAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):

    qs = GuestContact.objects.filter(contact_genere_id=1)

    return qs

这个 QuerySet 过滤器在 python shell 中工作,在我看来这不起作用我看到所有联系人不仅仅是公司联系人。你能帮帮我吗?

【问题讨论】:

    标签: django django-models django-forms django-views django-autocomplete-light


    【解决方案1】:

    我认为您需要一个网址供您查看: 像这样:

    from .views import GuestContactAutocomplete
    
    urlpatterns = [
        url(
            r'^guest-contact-autocomplete/$',
            GuestContactAutocomplete.as_view(),
            name='guest-contact-autocomplete'
        ),
    ]
    

    然后在表单中,将此 url 名称设置为表单字段小部件,如下所示:

    class ReservationForm(ModelForm):
    
    class Meta:
        model = Reservation
        fields = '__all__'
        widgets = {
            'company': autocomplete.ModelSelect2(url='guest-contact-autocomplete')
    }
    

    【讨论】:

      猜你喜欢
      • 2018-12-19
      • 2010-10-14
      • 2019-07-29
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      • 2014-06-12
      • 2018-10-20
      相关资源
      最近更新 更多