将django ModelForm与外键一起使用时,不显示任何数据

时间:2013-06-26 20:56:09

标签: django django-models django-forms

我正在尝试在我的模板中显示django ModelForm,但我无法让它工作。

这是我的代码:

模板是这样的:

{% extends 'base.html' %}
{% load i18n %}
{% load url from future %}
{% block content %}
{{ block.super }}
<section>       
    <article>
            <form action="{% url 'SaisirEnfant' %}" method="post">{% csrf_token %}
                <fieldset>
                    <div id="newad"> {{ newenfant.as_p }} </div>                
                    <div id="sub"> <input type="submit" value="Submit" /> </div>    
                </fieldset> 
            </form>     
    </article> 
</section>
{% endblock %}

,模型是这样的:

class PersonneAdulte(models.Model):
    profile = models.ForeignKey(Profile, verbose_name='Personne Adulte')
    prenom = models.CharField(max_length=50)
    responsable = models.BooleanField(default=False, verbose_name=_('responsable'))

class Famille(models.Model):
    responsable = models.ForeignKey(PersonneAdulte, verbose_name='responsable')
    sous_responsable = models.IntegerField(null=True, blank=True)
    coef_fam = models.IntegerField(null=True, blank=True)
    id_fam = models.IntegerField(null=True, blank=True)

class Enfant(models.Model):
    responsable = models.ForeignKey(Famille, verbose_name='responsable')
    nom = models.CharField(max_length=50 )
最后,wiews是这样的:

class PersonneAdulteForm(ModelForm):

    class Meta:
        model = PersonneAdulte
        exclude = ('profile')   

def PersonneAdulte(request):

    if request.method == 'POST': 
        adulte = PersonneAdulteForm(request.POST)   
        if adulte.is_valid():    
            #creates a new `User`.
            new_user = UserenaSignup.objects.create_user(username=adulte.data['nom'],
                                                         email='nom.prenom@site.fr',
                                                         password='0000',
                                                         active=False,
                                                         send_email=False)                    
            # Send the signup complete signal
            userena_signals.signup_complete.send(sender=None,
                                                 user=new_user)
            #Activate a user with an activation key.
            activation_key = UserenaSignup.objects.get(user_id=new_user.id).activation_key
            user = UserenaSignup.objects.activate_user(activation_key)

            t = adulte.save(commit=False) 
            if t.responsable == False :   
                new_user.is_active = False
                new_user.save()
            else : 
                f = Famille.objects.create(pk=new_user.id, responsable_id=new_user.id, id_fam=new_user.id)

            p = adulte.save(commit=False)
            p.id = p.profile_id = new_user.id
            p.save()    

            return HttpResponse( 'id: ' + str(p.id)  )                                                                                                                                           
    else:
        adulte = PersonneAdulteForm()
    return render_to_response('familles/PersonneAdulte.html', dictionary={ 'adulte' : adulte}, context_instance=RequestContext(request))

Profile是userena包

定义的模型

我的观点是创建一个新的Enfant实例,但根本没有显示任何数据,也没有错误消息。问题与我的模型中的外键有关(负责任),因为如果我在表单中排除字段,它可以正常工作。有谁知道这个问题的来源或我如何调试它?

0 个答案:

没有答案