ahh, feeling very frustrated, hopefully someone can enlighten me :)
-Creating a form to edit a "member" model
-Member has a few many-to-many relationships.
-I was initially getting an error about not being able to update m2m
unless you use the manager for the other table
-After googling, I found info on using inlineformset_factory
-Now I'm getting a new error about how the member model doesn't have
any fk to the firstAid model (firstAid being the m2m table that I'm
trying to relate to)
-I'm using a custom intermediate model for firstAid
-However, even when I try this with a different m2m attribute that
just uses django's default intermediate model, it gives me the same
error.
-----------------------------------
Code for models.py (shortened to relevant parts only :P )
class vehicle(models.Model):
key =
models.CharField('Key',max_length=6,null=True,blank=True,editable=True)
value =
models.CharField('Name',max_length=25,null=True,blank=True,editable=True)
description =
models.TextField('Description',null=True,blank=True,editable=True)
class firstAid(models.Model):
key =
models.CharField('Key',max_length=6,null=True,blank=True,editable=True)
value =
models.CharField('Name',max_length=65,null=True,blank=True,editable=True)
term =
models.IntegerField('Term',null=True,blank=True,editable=True)
patientCare = models.NullBooleanField('Patient
Care',editable=True,blank=True)
class rank(models.Model):
key =
models.CharField('Key',max_length=12,null=True,blank=True,editable=True)
value = models.TextField('Name',null=True,blank=True,editable=True)
prefix =
models.CharField('Prefix',max_length=25,null=True,blank=True,editable=True)
class member(User):
driverQual = models.ManyToManyField(vehicle,blank=True,null=True)
firstAid =
models.ManyToManyField(firstAid,blank=True,null=True,through='firstAidQualifiers')
rank = models.ForeignKey(rank,blank=True,null=True)
class firstAidQualifiers(models.Model):
m = models.ForeignKey(member)
fa = models.ForeignKey(firstAid)
date_obtained = models.DateField()
---------------------------------------------
Code for forms.py
class MemberForm(ModelForm):
model = member
exclude =
('password','date_joined','username','is_staff','is_active','last_login','is_superuser','firstAid')
-------------------------------------------------
Code for views.py
def editMember(request):
try:
x = request.GET.get('member', '')
except:
x = ''
if x == '':
return HttpResponseRedirect('/member-list/')
m = member.objects.get(username=x)
form = MemberForm(instance = m)
FirstAidFormset = inlineformset_factory(member, firstAid)
if request.method == 'POST':
form = MemberForm(request.POST, request.FILES,instance=m)
formset = FirstAidFormset(request.POST,
request.FILES,instance=m)
if formset.is_valid():
formset.save()
else:
form = MemberForm(request.POST, request.FILES,instance=m)
formset =
FirstAidFormset(request.POST,request.FILES,instance=m)
return render_to_response("edit-member.html", {
'formset': formset, 'form' : form, 'request' : request, 'm' :
m, 'instance' : m }, context_instance=RequestContext(request))
---------------------------------------
I realize this is a ton of code and is probably too annoying to even
begin to troubleshoot for me but if you have any thoughts or if I'm
*obviously* doing something wrong, I'd appreciate any insight! :)
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.