0

我正在使用 django-crispy-forms 并想使用 autocomplete-light 但无法启动。如果他们想要的设施不存在,我需要用户能够创建一个新设施。我只是不知道如何使用 autocomplete-light,而且我已经苦苦挣扎了好几天。有人可以指出我正确的方向吗?

模型.py

class CollectionFacility(TimeStampedModel):
    """
    Data collection facility.
    """

    facility_name = models.CharField(max_length=256, blank=False)
    address_line1 = models.CharField("Address line 1", max_length=45)
    address_line2 = models.CharField("Address line 2", max_length=45, blank=True)
    country = models.CharField(max_length=50, blank=False)
    state_province = models.CharField(max_length=100, blank=True)
    city = models.CharField(max_length=100, blank=False)
    postal_code = models.CharField("Postal Code", max_length=20, blank=True)
    facility_contact = models.ForeignKey('FacilityContact', related_name='collection_facilities', null=True, blank=True)

    def __unicode__(self):
        return "%s, %s" %  (self.facility_name, self.country)

    class Meta:
        ordering = ['country', 'facility_name', 'city', 'state_province']
        verbose_name = "Collection Facility"
        verbose_name_plural = "Collection Facilities"

class FacilityContact(TimeStampedModel):
    TITLES = (
        ('Mrs.', 'Mrs.'),
        ('Ms.', 'Ms.'),
        ('Mr.', 'Mr.'),
        ('Dr.', 'Dr.'),
    )

    first_name = models.CharField(max_length=256, blank=False)
    middle_initial = models.CharField(max_length=4, blank=True)
    last_name = models.CharField(max_length=256, blank=False)
    title = models.CharField(max_length=4, choices=TITLES, blank=True)
    email = models.EmailField(blank=False)

    def __unicode__(self):
        return "%s, %s" %  (self.last_name, self.first_name)

    class Meta:
        ordering = ['last_name', 'first_name']
        verbose_name = "Facility Contact"
        verbose_name_plural = "Facility Contacts" 

表格.py

class FacilityForm(autocomplete_light.ModelForm):
    class Meta:
        model = CollectionFacility

视图.py

facility_form = FacilityForm()
# pass it in the context to template
....

模板.html

{% crispy facility_form %}
4

1 回答 1

0

您是否检查了non_admin_add_another 示例应用程序

有关该文档的文档尚未移植到 v2,这意味着文档中的代码可能无法正常工作。但是请注意,这autocomplete_light.example_apps.non_admin_add_another应该有效。

我建议您直接在 autocomplete_light 的 test_project 中开始摆弄该示例,请参阅:http ://django-autocomplete-light.readthedocs.org/en/stable-2.xx/demo.html

于 2015-03-31T09:03:51.467 回答