【问题标题】: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() 

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

【问题讨论】:

  • 使用modelform并在模板中渲染
  • 喜欢人员字段的自动完成?

标签: 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...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-05
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    相关资源
    最近更新 更多