【问题标题】:Django forms. How add, search data to form field from databaseDjango 表单。如何从数据库中添加、搜索数据到表单字段
【发布时间】:2017-05-30 07:23:59
【问题描述】:
我有 2 个模型。
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
class Reservation(models.Model)
person = ForeiginKey(Perrson, on_delete=models.PROTECT)
from_date = models.DateField()
to_date = models.DateField()
我想预订。
如何制作表单以使第一个字段“人员”可以搜索人员并将找到的数据添加到表单字段,如果人员不存在添加新人员。
【问题讨论】:
标签:
django
django-models
django-forms
django-views
【解决方案1】:
我建议你看看django smart selects,因为它可能会派上用场。
您的模型将更改为:
from smart_selects.db_fields import ChainedForeignKey
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
class Reservation(models.Model)
person = ChainedForeignKey(
Person,
chained_field="Person",
chained_model_field="Person",
show_all=False,
auto_choose=True,
sort=True)
from_date = models.DateField()
to_date = models.DateField()
接下来,您将创建一个表单并将其呈现在模板中。每当您在 reservation 表单中选择 person 时,字段都会自动更新。
然后使用视图来处理您的逻辑,if person not exist add new person...