/ / Mappatura ID chiave primaria Django - django, modelli django

Mappatura ID chiave primaria Django - django, modelli django

Ho un modello come indicato di seguito /

class UserWidgetMapping(models.Model):
user = models.ForeignKey(AuthUser)
widget_string = models.CharField(max_length=600L)
class Meta:
db_table = "user_widget_mapping"

Quando eseguo una query user_widgets = UserWidgetMapping.objects.filter(user_id = user_id) genera un errore che dice (1054, "Unknown column "user_widget_mapping.id" in "field list""). so che Django assegna automaticamente un id a un modello automaticamente, ma non voglio un ID all'interno di questo modello. Per questo ho bisogno di fornire un attributo primarykey = True . Ma dal momento che la chiave esterna diventa la chiave principale del proprio tablt, come posso eseguire questa query?

risposte:

0 per risposta № 1

Perché non vuoi un ID? Non ha senso che ForeignKey sia la chiave primaria, perché non è univoco: il punto di una foreignkey è che è una relazione molti-a-uno, quindi molti UserWidgetMappings potrebbero puntare allo stesso AuthUser, e così hanno lo stesso valore per user_id. Se non lo vuoi, dovresti forse usare OneToOneField.

Non capisco il resto della tua domanda sulla domanda, però: non riesco a capire perché qualcosa cambierebbe se tu avessi dato il primary_key=True attribuire a user.