我制作了模型、表格和视图。我通过表单添加了一些数据。然后当我想要编辑时,所有字段都已满,但日期字段为空。我想查看我之前添加的日期。但什么也没有。 我使用所有的人工智能解决方案,还有 javascript、jquery,但什么也没用。
我该如何解决这个问题。
我有这样的模型:
class Cilt(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Kullanıcı")
birth_place = models.CharField(max_length=200, blank=True, null=True, verbose_name="Birth Place")
birth_date = models.DateField(blank=True, null=True, verbose_name="Birth date")
def __str__(self):
return f"{self.user.username}"
表格.py
class CiltForm(forms.ModelForm):
class Meta:
model = Cilt
exclude = ['user']
fields = '__all__'
widgets = {
'birth_place': forms.TextInput(attrs={'class': 'form-control'}),
'birth_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
}
def __init__(self, *args, **kwargs):
super(CiltForm, self).__init__(*args, **kwargs)
instance = kwargs.get('instance', None)
if instance:
initial_date = instance.ucuk_en_son_cikis_tarihi
self.fields['birth_date'].initial = initial_date
self.fields['birth_date'].widget = forms.DateInput(attrs={'class': 'form-control', 'type': 'date'})
编辑视图
def cilt_duzenle(request, user_id):
ciltler = get_object_or_404(Cilt, user__id=user_id)
if request.method == 'POST':
form = CiltForm(request.POST, instance=ciltler)
if form.is_valid():
form.save()
return redirect('cilt_detay', user_id=user_id)
else:
form = CiltForm(instance=ciltler)
return render(request, 'cilt/cilt_duzenle.html', {'form': form})
您正在初始化的日期似乎是错误的。
initial_date = instance.ucuk_en_son_cikis_tarihi
像这样修改代码即可解决问题。
initial_date = instance.birth_date