I'm using the DateInput widget to provide a datepicker when a date field is input. However on my update form, the form pulls all the data for that recordd, except the date, which shows up as:
dd/mm/yyy
How do I get the already input date to show" models.py
class Project(models.Model):
'''
Main Project, serves the default Projects Portal window.
'''
published = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
area = models.ForeignKey(
Area,
related_name="project",
on_delete=models.PROTECT
)
title = models.CharField(max_length=128, unique=True)
slug = models.SlugField(max_length=64)
summary = models.CharField(max_length=256)
others = models.CharField(max_length=128, blank=True)
staff_trials = models.DateField(null=True, blank=True)
deadline = models.DateField()
slip = models.BooleanField(default=False)
class Meta:
ordering = ["-slip", "deadline"]
def __str__(self):
return self.title
forms.py
class DateInput(forms.DateInput):
input_type = 'date'
class ProjectModelForm(forms.ModelForm):
"""
Form used for creating and editing projects. Authenticated User
required to be signed in.
"""
title = forms.CharField(widget=forms.Textarea)
summary = forms.CharField(widget=forms.Textarea)
class Meta:
model = Project
fields = (
'title',
'summary',
'others',
'staff_trials',
'deadline',
'area',
)
widgets = {
'staff_trials': DateInput(),
'deadline': DateInput(),
}
veiws.py
class ProjectEditView(UpdateView):
template_name = 'project_portal/project_detail.html'
form_class = ProjectModelForm
queryset = Project.objects.all()
def form_valid(self, form):
user = self.request.user
form.instance.user = user
print(form.cleaned_data)
return super().form_valid(form)
def get_object(self):
slug_ = self.kwargs.get("slug")
return get_object_or_404(Project, slug=slug_)