私はこの問題の解決策を見つけることができません。手動で指定しなければ、特定のフィールドにデフォルト値を割り当てる必要がある、「アルバム」というモデルがあります。すべての研究の後、私のコードはすべて正しいと感じますが、デフォルト値は割り当てられていません。また、これは私の初めてのstackoverflowの質問を投稿していますので、私の初心者にもご負担ください。Djangoのデフォルト値が割り当てられていません! django 1.11 python 3.6
models.pyファイル:
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ファイル:
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__'
デフォルト値が 'アーティスト'、 'ALBUM_TITLE' に割り当てられることが期待されているここで、すべてのコードですこれらのフィールドが空白のままの場合は 'dt_field'になります。実際に初期化されていない限り、フィールドにはデフォルト値が割り当てられず、nullのままです。
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"
このアプローチが正しくない場合にも、何が正しいアプローチかもしれません?