如何在管理界面中显示 M2M 模型的中间字段?
我有以下 model.py 文件,其中费用模型具有带有中间模型会员资格的 M2M 田间农场。
class Farm(models.Model):
farmNo = models.CharField(max_length=100)
size = models.CharField(max_length=50)
description = models.TextField()
class Charges(models.Model):
chargeDescription = models.TextField(verbose_name="Description")
chargeType = models.CharField(max_length=10,choices=CHARGE_TYPE)
farms = models.ManyToManyField(Farm,through='Membership')
class Meta:
verbose_name_plural = "Charges"
class Membership(models.Model):
farm = models.ForeignKey(Farm)
charges = models.ForeignKey(Charges)
paymentDate = models.DateField()
paymentStatus = models.BooleanField(default=False)
我的问题是,当我使用 django 管理应用程序为收费模型“农场”创建新对象时,M2mM 字段不会显示,这样我就无法将费用分配给农场。我想知道为什么小部件没有显示,我该如何再次显示显示该小部件,供用户在创建费用时选择农场。
我尝试重写 def formfield_for_manytomany(self, db_field, request=None, **kwargs): 方法,该方法导致小部件不显示在屏幕上,但仍然没有出现在屏幕上。
请帮忙 谢谢
I have following model.py file in which Charges model have M2M field farms with an intermediate model Membership.
class Farm(models.Model):
farmNo = models.CharField(max_length=100)
size = models.CharField(max_length=50)
description = models.TextField()
class Charges(models.Model):
chargeDescription = models.TextField(verbose_name="Description")
chargeType = models.CharField(max_length=10,choices=CHARGE_TYPE)
farms = models.ManyToManyField(Farm,through='Membership')
class Meta:
verbose_name_plural = "Charges"
class Membership(models.Model):
farm = models.ForeignKey(Farm)
charges = models.ForeignKey(Charges)
paymentDate = models.DateField()
paymentStatus = models.BooleanField(default=False)
My problem is that when i create a new object using django admin app for Charges model "farms" M2mM field doesnot shows up and that way i cannot assign charges to farms.I am wondering why the widget is not showing up and how can I again show that widget for user to select farms while create a charge.
I tried overriding def formfield_for_manytomany(self, db_field, request=None, **kwargs):
method which is causing widget not to show on screen but still its not appearing on screen.
Please help
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它不会,因为它无法在不收集会员资格附加数据的情况下添加农场。您必须使用内联,但即便如此,您也必须内联 Membership,而不是 Farm。
然后,您可以选择现有农场或以正常方式为您添加的每个会员创建新农场。
It won't because it can't add a Farm without collecting the additional data on Membership. You have to use inlines, but even then, you have to inline Membership, not Farm.
You can then select an existing Farm or create a new Farm in the normal way on each Membership you add.