我有一个如下所示的模型/
class UserWidgetMapping(models.Model):
user = models.ForeignKey(AuthUser)
widget_string = models.CharField(max_length=600L)
class Meta:
db_table = 'user_widget_mapping'
当我执行查询user_widgets = UserWidgetMapping.objects.filter(user_id = user_id)
时,会抛出错误(1054, "Unknown column 'user_widget_mapping.id' in 'field list'")
。我知道Django会自动为模型分配一个id,但我不想在这个模型中使用id。为此,我需要提供一个属性primarykey = True
。但是,由于外键成为其自身tablt的主键,我该如何执行此查询?
答案 0 :(得分:0)
为什么不想要身份证?将ForeignKey作为主键是没有意义的,因为它不是唯一的:外键的关键在于它是多对一的关系,因此许多UserWidgetMappings可以指向相同的AuthUser,因此具有相同的值为user_id
。如果你不想这样,你或许应该使用OneToOneField。
我不明白您对该查询的其他问题:如果您将primary_key=True
属性赋予user
,我无法理解为什么会发生任何变化。