Django形式。如何从数据库添加,搜索数据到表单字段

时间:2017-05-30 07:24:00

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

我有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() 

我想预约。 如何制作表格以便第一个字段“人”可以搜索人并将找到的数据添加到表单字段中,如果不存在则添加新人。

1 个答案:

答案 0 :(得分:0)

我建议您查看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() 

接下来,您将创建一个表单并将其呈现在模板中。只要您在person字段中选择reservation字段,系统就会自动更新。

然后使用视图处理您的逻辑if person not exist add new person...