【问题标题】:How can I show specific data un my Django form?如何在我的 Django 表单中显示特定数据?
【发布时间】:2019-09-18 14:50:53
【问题描述】:

我是 Django 的初学者,我正在制作一个借书的应用程序,现在我正在尝试使用这些模型制作一个表单:

在我的应用图书中

Class CopyB(models.Model):
     Copy= models.Autofield(primary key=True)
     Condition= models.Charfield(max_lenght=20)
     IdBook=models.ForeignKey(Book, blank= false, null= false ,on_delete= models.CASCADE)

也在我的应用用户中

Class User(models.Model):
      Myid= models.Charfield(primary_key=True, max_length=20)
      Name= models.Charfield(max_length=20)
      Lastname= models.Charfield(max_length=20)

在我的应用贷款中

From apps.books.models import CopyB
From apps.users.models import User

Class loan(models.Model):
      IdLoan= models.Autofield(primary_key=True)
      IdB= models.ForeignKey(CopyB,blank=False, null=False)
      IdU= models.ForeignKey(User,blank=False, null=False)

我想要做的是从模型贷款中制作一个表单,并在 IdB 字段上的该表单上我只想在选择输入中显示模型 CopyB 中的 Books 字段条件等于可用

但我不知道怎么做! 提前致谢

【问题讨论】:

  • 看看forms.ModelForm
  • 请不要问诸如“你能帮我写代码吗,因为我不知道该怎么做”之类的问题。向我们展示您的尝试。向我们展示一个或多或少能满足您需求的表单,并说明您想要实现的目标以及该表单不能做什么。

标签: python django django-forms django-views


【解决方案1】:

您必须过滤满足您想要的条件的对象,并用它们填写选择字段。

class LoanForm(forms.ModelForm):

  IdB= forms.ModelChoiceField(queryset=CopyB.objects.filter(condition='available'))

  class Meta:
    model = Loan
    fields = "__all__"

class LoanForm(forms.ModelForm):

  class Meta:
    model = Loan
    fields = "__all__"

  def __init__(self, *args, **kwargs):

    super(LoanForm, self).__init__(*args, **kwargs)
    self.fields['IdB'].queryset = CopyB.objects.filter(condition='available')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多