【发布时间】:2021-04-05 13:44:38
【问题描述】:
我在设置具有多对多关系的网站流时遇到问题。
例如,有许多模型具有多种类型,反之亦然。我的 URL 设置为 site/model/typed/detail
由于类型和模型是多对多,我无法传递到我的详细信息页面。
我想我可以通过创建变量来规避这个问题,这些变量实际上将模型链接到类型,让它详细地用作唯一标识符外键。它看起来像:site/model/model_type/detail
但是,我无法提取这些值。如果有更简单的方法来解决这个问题,请告诉我!
class typed(models.Model):
typed = models.CharField(max_length=200, help_text='Enter MFG - Type')
model = models.ForeignKey('model', on_delete=models.SET_NULL, null=True)
model_type = model + typed
def get_absolute_url(self):
return reverse('typed-detail', args=[str(self.model), str(self.model_type)])
def __str__(self):
return self.model_type
我收到此错误:TypeError: unsupported operand type(s) for +: 'ForeignKey' and 'CharField'
【问题讨论】:
-
Pete,我可能完全错了,但我不确定这是用 Django 的 ORM 建模的常用方法。一方面,最简单的答案是找到一种方法将
model和typed的值强制转换为字符串,然后将它们连接起来,但不知道更多关于你的目标,也许一两个他们如何'd 相关,我不确定这能解决更大的问题。您是否考虑过使用 Django 的 ManyToMany 字段类型? docs.djangoproject.com/en/3.1/topics/db/examples/many_to_many
标签: python django django-models foreign-keys