django admin. dynamische choices
Verfasst: Donnerstag 28. August 2008, 09:54
hallo alle,
ich bin neu in phyton und django und habe folgende frage.
wenn ich in einem model einen foreign-key erstelle in etwa so
habe ich dadurch einen nette select-box im admin bereich zur zuordnung des foreign-keys.
ich möchte gerne eine select-box die aber nicht einem foreign-key zugrunde liegt.
abbilden könnte man das ganze über CHOICES in etwa so
das feld im model könnte dann so ausssehen
funktioniert wunderbar, nur ist FILE_CHOICES recht statisch und hier kommt die frage:
wie kann ich die FILE_CHOICES dynamisch füllen, sprich aus einem anderen model holen, zum beispiel aus:
da ich gerade schon dabei bin. angenommen ich würde doch ForeignKey nutzen, wie könnte ich erreichen, das nur die einträge die status = valid haben zur auswahl kommen?
noch eine frage: im admin bereich werden alle felder die im model definiert werden als required behandelt. wie kann man ein feld als nicht required kennzeichnen?
vielen dank schonmal im vorraus.
ich bin neu in phyton und django und habe folgende frage.
wenn ich in einem model einen foreign-key erstelle in etwa so
Code: Alles auswählen
infile = models.ForeignKey(Infile)
ich möchte gerne eine select-box die aber nicht einem foreign-key zugrunde liegt.
abbilden könnte man das ganze über CHOICES in etwa so
Code: Alles auswählen
FILE_0 = 0
FILE_1 = 1
FILE_2 = 2
FILE_3 = 3
FILE_CHOICES = (
(FILE_0, 'Datei wählen:'),
(FILE_1, 'Datei #1'),
(FILE_2, 'Datei #2'),
(FILE_3, 'Datei #3'),
)
Code: Alles auswählen
infile = models.PositiveIntegerField(choices=FILE_CHOICES)
wie kann ich die FILE_CHOICES dynamisch füllen, sprich aus einem anderen model holen, zum beispiel aus:
Code: Alles auswählen
class Infile(models.Model):
VALID_STATUS = 1
INVALID_STATUS = 2
STATUS_CHOICES = (
(VALID_STATUS, 'Valid'),
(INVALID_STATUS, 'Invalid'),
)
filename = models.CharField(max_length=100)
editor = models.ForeignKey(User)
edited_at = models.DateTimeField(default=datetime.datetime.now)
filepath = models.CharField(max_length=250)
fileext = models.CharField(max_length=3)
status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES)
def __unicode__(self):
return self.filename
noch eine frage: im admin bereich werden alle felder die im model definiert werden als required behandelt. wie kann man ein feld als nicht required kennzeichnen?
vielen dank schonmal im vorraus.