My Models.py,這裏我使用OneToOneField來擴展StudentProfile。嘗試使用Django創建用戶時使用關鍵字'username'的FieldError
from django.db import models
from django.contrib.auth.models import User, UserManager
class SecretQuestion(models.Model):
question = models.CharField(max_length=200)
def __unicode__(self):
return self.question
class StudentProfile(models.Model):
user = models.OneToOneField(User)
batch = models.CharField(max_length=10)
course = models.CharField(max_length=20)
date_of_birth = models.DateField()
secret_question = models.ForeignKey(SecretQuestion)
answer = models.CharField(max_length=20)
contact = models.CharField(max_length=20)
而且我的註冊看,我正在創建新的用戶main_user,我用它來創建學生簡介: -
def register_page(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
main_user = User.objects.create_user(
username= form.cleaned_data['username'],
password = form.cleaned_data['password1'],
)
user = StudentProfile.objects.create(
user_id = main_user.id,http://stackoverflow.com/questions/ask
batch=form.cleaned_data['batch'],
course=form.cleaned_data['course'],
date_of_birth=form.cleaned_data['date_of_birth'],
secret_question=form.cleaned_data['secret_question'],
answer=form.cleaned_data['answer'],
contact=form.cleaned_data['contact']
)
return HttpResponseRedirect('/register/success/')
else:
form = RegistrationForm()
variables = RequestContext(request, {'form': form})
return render_to_response('registration/register.html',variables)
在Django註冊後,我得到,
FieldError at /register/
Cannot resolve keyword 'username' into field. Choices are: answer, batch, contact, course, date_of_birth, id, secret_question, user
填寫註冊字段並按下注冊按鈕後發生這種情況。 我無法解釋這個錯誤。這是什麼意思?
我已經做到了,但我依然得到同樣的錯誤。即使我不知道發生了什麼,因爲如果我刪除整個用戶名代碼(這部分form.cleaned_data ['用戶名'])仍然我得到同樣的錯誤,任何線索? – JohnRK 2012-04-10 02:26:28
@Jainit嗯看到我的編輯,特別是[第二個答案](http://stackoverflow.com/a/7580903/500584)到鏈接的問題 - 這有幫助嗎? – agf 2012-04-10 02:37:14
它似乎能工作,我有兩個問題, 有沒有什麼辦法從RegistrationForm排除電子郵件和使用類Meta和從模型生成表單,有沒有什麼辦法可以在字段中寫入quesryset,我想做這樣的事情: - secret_question = forms.ModelChoiceField(queryset = SecretQuestion.objects.all()) – JohnRK 2012-04-10 04:52:58