Ich bin auf der Suche nach der Lösung für dieses Problem. Ich habe ein Modell namens "Album", wo bestimmte Felder Standardwerte zugewiesen werden müssen, wenn sie nicht manuell angegeben werden. Nach all den Nachforschungen fühlt es sich an, als wäre mein Code korrekt, aber Standardwerte werden nicht zugewiesen. Außerdem stelle ich zum ersten Mal eine Frage zu stackoverflow, also bitte mit meiner Neuigkeit. Hier sind alle Codes:Django Standardwert wird nicht zugewiesen! django 1.11 python 3.6
models.py Datei:
class Album(models.Model):
artist = models.CharField(max_length = 250, blank = True, null = True, default = "some_default_artist_name")
album_title = models.CharField(max_length = 500, default='some_default_album_name', blank = True, null = True)
genre = models.CharField(max_length = 100)
album_logo = models.FileField()
date_field = models.DateField()
dt_field = models.DateField(blank = True, null = True, default=date.today().strftime('%d/%m/%Y'))
forms.py Datei:
class AlbumForm(forms.ModelForm):
artist = forms.CharField(required = False)
album_title = forms.CharField(required = False)
genre = forms.CharField()
album_logo = forms.FileField()
date_field = forms.DateField(widget = forms.DateInput(attrs={'placeholder': 'dd/mm/yyyy'}, format='%d/%m/%Y'))
dt_field = forms.DateField(required = False, widget = forms.DateInput(attrs={'placeholder': 'dd/mm/yyyy'}, format='%d/%m/%Y'))
class Meta:
model = Album
fields = '__all__'
Es wird erwartet, dass die Standardwerte zu 'Künstler' zugeordnet werden, 'ALBUM_TITLE' und 'dt_field', wenn diese Felder im Formular leer gelassen werden. Keines der Felder wird Standardwerte zugewiesen und bleibt null, es sei denn, es wird initialisiert.
views.py:
class AlbumCreate(LoginRequiredMixin, SuccessMessageMixin, CreateView):
login_url = 'music:login'
form_class = AlbumForm
redirect_field_name = None
#fields = '__all__'
model = Album
success_message = "Album was created successfully"
Auch wenn dieser Ansatz nicht richtig ist, was der richtige Ansatz sein könnte ??