I made a model, form and views. I added some data via form. And then when i want editing, all fields are full but datefield is empty. I want to see date which i added before. But nothing.
I use all ai solutions also javascript, jquery, but nothing.
How can i solve this problem.
I have model like this and
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}"
forms.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'})
edit views
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})