Your model:
class TicketItem(models.Model):
hours = models.DecimalField(decimal_places=2, max_digits=6)
day = models.DateField()
order = models.ForeignKey(Order)
tickets = models.ManyToManyField(Ticket)
Now you want to auto save m2m fields in your forms.TicketItemCreateForm:
- inherit from m2mForm-Class
- define m2m_field(s)
Example:
class TicketItemCreateForm(m2mForm):
m2m_field = 'tickets'
class Meta:
model = models.TicketItem
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class m2mForm(forms.ModelForm):
"""
m2m_field = Fieldname of your m2m Field
m2m_fields = supports multiple m2m Fields
"""
m2m_field = ''
m2m_fields = []
def save(self, commit=True):
"""
Saving m2m
"""
instance = super(m2mForm, self).save(commit=True)
if self.m2m_field:
self.m2m_fields = [self.m2m_field]
for field in self.m2m_fields:
m2mfield = getattr(instance, field)
for obj in self.cleaned_data.get(field):
m2mfield.add(obj)
if commit:
instance.save()
#self.save_m2m()
return instance
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 11 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 2 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
- Help text hyperlinks by sa2812 1 year, 7 months ago
Comments
Please login first before commenting.