簡體   English   中英

一種視圖中的不同模型

[英]Different models in one view

嗨,我在django非常陌生。 我想知道是否可以在一個視圖中使用不同的模型。 因此,我查看了此頁面https://collingrady.wordpress.com/2008/02/18/editing-multiple-objects-in-django-with-newforms/它非常有用,但在瀏覽器頁面上看不到輸出。 我在哪里弄錯了?

我的看法

from .models import Contact, MyUser
from .forms import ContactForm, UserRegisterForm
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response

def total_register(request):
uform = UserRegisterForm()
cform = ContactForm()
if request.method == "POST":
    uform = UserRegisterForm(request.POST or None, instance=MyUser())
    cform = [ContactForm(request.POST or None, prefix=str(x), instance=Contact()) for x in range(0,19)]
    if uform.is_valid() and all([cf.is_valid() for cf in cform]):
        new_MyUser = uform.save()
        for cf in cform:
            new_contact = cf.save(commit=False)
            new_contact.MyUser = new_MyUser
            new_contact.save()
        return HttpResponseRedirect('/')
else:
                pform = UserRegisterForm(instance=MyUser())
                cform = [ContactForm(prefix=str(x), instance=Contact()) for x in range(0,19)]
return render_to_response('total_register.html', {'UserRegisterForm': uform, 'ContactForm': cform})

我的表格

class UserRegisterForm(forms.ModelForm):
username = forms.CharField(label = 'isminizi giriniz')
lastname = forms.CharField(label = 'soyisminizi giriniz')    
password = forms.CharField(widget=forms.PasswordInput)


class Meta:
    model = User
    fields = [
        'username',
        'lastname',
    ]
def signup(self, request, user):
    user.username = self.cleaned_data['username']
    user.lastname = self.cleaned_data['lastname']


    user.save()




class ContactForm(forms.ModelForm):
class Meta:
    model = Contact
    fields = ['username','soyad','cinsiyet','unvan','kurum',"bolum","gorev", "uzmanlik","adres","posta_kodu","sehir","ulke","is_tel","ev_tel","fax_no","cep_tel","email"]

我的網址

    url(r'^kayit/', bildirge.views.total_register, name = 'kayit'),

我的HTML

{% extends "base.html" %}
{% load crispy_forms_tags %}


{% block content %}
<div class='col-sm-6 col-sm-offset-3'>
<h1>{{ title }}</h1>
<hr/>

<form method='POST' action='' enctype='multipart/form-data'>{% csrf_token %}
{{ form|crispy }}
<button type='submit'>gonder</button>
</form>
</div>
{% endblock content %}

提前致謝

您在模板中使用變量form ,但是將UserRegisterFormContactForm作為模板上下文傳遞。

嘗試類似:

<form...>

{{ UserRegisterForm }}
{% for form in ContactForm %}
{{ form }}
{% endfor %}
</form>

兩個提示:

  • 檢查表單集用於處理相同類型的多個形式
  • 請確保您的代碼正確縮進,尤其是使用Python

您已經向模板發送了兩個變量,分別是鍵UserRegisterFormContactForm 您必須在模板中使用這些名稱,而不僅僅是form

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM