'Trouble with using datepicker in edit form
I have trouble with edit data in django project. Everything is almost ok :) , but if I'm trying edit data my form get all data from database exept date field. I found solution as below and I see datapicker on my edit form but I have to fill in data to this field. Every data in edit form are filled in exept this one.
Datapicker for adding records works good. I'm using the same form to add and edit.
My forms.py is listed below:
from django import forms
from .models import Expens, Category
class DateInput(forms.DateInput):
input_type = 'date'
class ExpensForm(forms.ModelForm):
class Meta:
model = Expens
fields = ('name', 'date', 'category', 'value', 'add_description', 'scan')
labels = {
'name': 'Nam:',
'date': 'Date:',
'category': 'Category:',
'value': 'Value:',
'add_description': 'Descripion:',
'scan': 'Scan:',
}
widgets ={
'name': forms.TextInput(attrs={'class': 'form-control'}),
'date': DateInput(attrs={'class': 'form-control'}),
'category': forms.Select(attrs={'class': 'form-control'}),
'value': forms.NumberInput(attrs={'class': 'form-control'}),
'add_description': forms.TextInput(attrs={'class': 'form-control'}),
'scan':(),
}
My html template to this forms is listed below:
{% extends 'expenses/index.html' %}
{% block tytul %} DATABASE FORMS {% endblock %}
{% load bootstrap5 %}
{{ form.media }}
{% block strona %}
{% if new %}
<h5>Add record</h5>
{% else %}
<h5>Edit record</h5>
{% endif %}
<div class="mb-3">
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{% bootstrap_form form %}
<div class="col-lg-12" style="text-align:center">
{% if new %}
<button type="submit" class="btn btn-success btn-sm">ADD</button>
{% else %}
<button type="submit" class="btn btn-success btn-sm">EDIT</button>
{% endif %}
</div>
</form>
</div>
<div class="col-lg-12" style="text-align:center">
<br>
<br>
<a href= "{% url 'show_record' %}" class="btn btn-success btn-sm">Back</a>
</div>
{% endblock %}
My models.py listing is:
from django.db import models
# Create your models here.
class Category(models.Model):
name = models.CharField(max_length=60, blank=False, unique=True)
add_description = models.TextField(default="")
def __str__(self):
return self.name
class Expens(models.Model):
name = models.CharField(max_length=120, blank=False, null=False)
date = models.DateField(null=True, blank= True)
category= models.ForeignKey(Category, blank=False, null=True, on_delete=models.SET_NULL)
value = models.DecimalField(max_digits=10, decimal_places=2, null = False, blank=False)
add_description = models.TextField(default="", null=True, blank=True)
scan = models.ImageField(upload_to ="scans", null = True, blank = True)
def __str__(self):
return self.expens_with_data()
def expens_with_data(self):
return "{} ({})".format(self.category, self.date)
What is wrong with my form ? :)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
