Ich habe zwei Modelle in Django mit Definitionen unten. CreativeStatus Modell:Mehrere Feld Fremdschlüssel in Django
class RtbdCreativeStatus(models.Model):
creative_id = models.CharField(max_length=500, primary_key=True)
advertiser_id = models.CharField(max_length=100, primary_key=True)
exposure_level = models.CharField(max_length=125)
modified_on = models.DateTimeField()
modified_by = models.CharField(max_length=100)
class RtbdCreative(models.Model):
id = models.AutoField(primary_key=True)
advertiser_id = models.ForeignKey(RtbdCreativeStatus, on_delete=models.CASCADE)
creative_id = models.ForeignKey(RtbdCreativeStatus, on_delete=models.CASCADE)
country_id = models.IntegerField()
adm = models.CharField(max_length=255, null=True, blank=True)
sample_url = models.CharField(max_length=500)
landing_page = models.CharField(max_length=500, null=True, blank=True)
html = models.CharField(max_length=500)
creative_attributes = models.CommaSeparatedIntegerField(max_length=150, null=True, blank=True)
advertiser_domains = models.CharField(max_length=500)
description = models.CharField(max_length=500, null=True, blank=True)
created_on = models.DateTimeField(auto_now=True, auto_now_add=True)
creative_type = models.CharField(max_length=50, null=True, blank=True)
demand_source_type_id = models.IntegerField()
revalidate = models.BooleanField(default=False)
(creative_id, werbetreibenden_id) Kombination ist einzigartig in meinem CreativeStatus Tisch. Ich möchte, dass diese Kombination mein Fremdschlüssel für Creative Table ist. Ich habe versucht, es hinzuzufügen, aber ich bekomme diesen Fehler.
1) Wie erreiche ich diese Verbindung mit zwei Tastenkombination als mein Fremdschlüssel.
2) Wie lautet meine Abfrage, um alle Creatives mit ihrem Status aus der CreativeStatus-Tabelle abzurufen.
UPDATE 1
auf die Antworten unten zu lesen, ich mein Modell aktualisiert, wie unten erwähnt:
class RtbdCreative(models.Model):
id = models.AutoField(primary_key=True)
advertiser_id = models.ForeignKey(RtbdCreativeStatus, to_field='advertiser_id', related_name='advertiser', db_column='advertiser_id', on_delete=models.CASCADE)
creative_id = models.ForeignKey(RtbdCreativeStatus, to_field='creative_id', related_name='creative', db_column='creative_id', on_delete=models.CASCADE)
country_id = models.IntegerField()
adm = models.CharField(max_length=255, null=True, blank=True)
sample_url = models.CharField(max_length=500)
landing_page = models.CharField(max_length=500, null=True, blank=True)
html = models.CharField(max_length=500)
creative_attributes = models.CommaSeparatedIntegerField(max_length=150, null=True, blank=True)
advertiser_domains = models.CharField(max_length=500)
description = models.CharField(max_length=500, null=True, blank=True)
created_on = models.DateTimeField(auto_now=True, auto_now_add=True)
creative_type = models.CharField(max_length=50, null=True, blank=True)
demand_source_type_id = models.IntegerField()
revalidate = models.BooleanField(default=False)
Jetzt diesen Fehler i bin immer. Ich habe die Kombination advertiser_id, craetive_id als einzigartig. Aber Django erwartet, dass beide einzigartig sind. Was kann ich tun, damit es funktioniert?
Ich habe Ihre zweite Frage nicht ganz verstanden, 'CreativeStatus' Tabelle und' Creative' Tabelle sind nicht verwandt. Aber wenn "RtdbCreativeStatus" -Tabelle und "CreativeStatus" irgendwie verwandt sind, sollten Sie die entsprechenden Modelle für weitere Fragen veröffentlichen. – zaidfazil
@FazilZaid RtbdCreative Tabelle ist Creative-Tabelle oben, ich plane, den Namen zu chgnagen, der Screenshot ist ein bisschen alt. Ich möchte nur die Abfrage kennen, um auf beide Tabellen nach dem Beitritt in Django –