Аз съм модел като дадения по-долу /
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 автоматично присвоява идентификатор на модел, но не искам идентификатор в този модел. За това трябва да осигуря атрибут primarykey = True
, Но тъй като външният ключ се превръща в първичен ключ на собствения му tablt, как мога да изпълня тази заявка?
Отговори:
0 за отговор № 1Защо не искате лична карта? Няма смисъл ForeignKey да е основният ключ, защото това не е уникално: смисълът на чуждестранната ключа е, че тя е "много към един", толкова много UserWidgetMappings могат да сочат към същия AuthUser и така същата стойност за user_id
, Ако не искате това, може би вместо това използвате OneToOneField.
Въпреки това не разбирам останалата част от въпроса ви относно заявката: не мога да разбера защо нещо би се променило, ако сте дали primary_key=True
атрибут на user
.