Ich mache einen Tee-Katalog in Django, und ich habe ein bisschen ein Problem mit den Modellen. Ich möchte, dass einige Dinge in der Datenbank eine Auswahl für 1-5 für bestimmte Bewertungen haben. Zum Beispiel, für den Tee-Typ, möchte ich einen Caffine Level von 1-5. Ich mache das mit dem folgenden Code:Django Admin - Auswahl funktioniert für ein Integer-Modell, aber kein anderes
one_to_five_choices = zip(range(1,5+1), range(1,5+1))
...
class TeaType(models.Model):
name = models.CharField(max_length=20, primary_key=True)
steeping_temperature = models.PositiveSmallIntegerField()
steeping_time_minutes = models.PositiveSmallIntegerField()
caffeine_level = models.PositiveSmallIntegerField(choices=one_to_five_choices)
directions = models.TextField()
def __str__(self):
return self.name
Und es funktioniert perfekt!
Allerdings habe ich scheinbar den gleichen Code für Ratings, und es zeigt nicht diese Box für die Auswahl.
class Rating(models.Model):
rating = models.PositiveSmallIntegerField(choices=one_to_five_choices)
tea = models.ForeignKey(Tea)
user = models.ForeignKey(User)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return "{} star rating for {} by {}".format(self.rating, self.tea, self.user.get_username())
class Meta:
unique_together = (("user", "tea"),)
Es interessant los in der admin.py nichts diese
for m in [TeaType, Brand, Ingredient, Picture, Rating]:
admin.site.register(m)
Jede Idee, um zu bewirken, ist, warum dies geschieht?
Ich habe den ganzen Code gelesen, der Formularfelder für den Admin erzeugt (siehe die Funktion 'modelform_factory') und nichts deutet darauf hin, warum dies geschieht. Die Factory-Funktion sollte nicht ignorieren, dass Sie Optionen in diesem Feld festlegen. Ich denke, wenn Sie es reproduzieren können, haben Sie einen Fehler gefunden und Sie können es melden: https://code.djangoproject.com/newticket – fixmycode
Ok - ich habe keine Ahnung, wie ich eine kleinere reproduzierbare Version davon machen kann , aber ich denke, ich werde das Ticket trotzdem ablegen. – Arya
vergiss meinen Kommentar, ich denke @ user61000 unten ist richtig – fixmycode