我一直在尝试创建一个django项目,该项目拥有用户,并且这些用户可以添加他们创建的书籍的标题。但每次我输入书名(不在管理页面上)时,我都会出现这个错误
Cannot assign "u'Hello Wold'": "Scripter.title" must be a "Book" instance.
models.py
from django.db import models
from django.contrib.auth.models import User
class Book(models.Model):
script_title = models.CharField(max_length=100)
def __unicode__(self):
return self.script_title
class Scripter(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=30)
title = models.ForeignKey(Book, null=True, blank=True, default=None)
def __unicode__(self):
return self.name
from django import forms
from django.contrib.auth.models import User
from django.forms import ModelForm
from scripters.models import Scripter#, Book
class RegistrationForm(ModelForm):
username = forms.CharField(label=(u'User Name'))
email = forms.EmailField(label=(u'Email Address'))
password = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False))
password1 = forms.CharField(label=(u'Verify Password'), widget=forms.PasswordInput(render_value=False))
class Meta:
model = Scripter
exclude = ('user','title')
def clean_username(self):
username = self.cleaned_data['username']
try:
User.objects.get(username=username)
except User.DoesNotExist:
return username
raise forms.ValidationError("User Name has been taken!")
def clean(self):
if self.cleaned_data['password'] != self.cleaned_data['password1']:
raise forms.ValidationError("The passwords did not match")
else:
return self.cleaned_data
class LoginForm(forms.Form):
username = forms.CharField(label=(u'Username'))
password = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False))
class CreateScript(ModelForm):
title = forms.CharField(label=(u'Script Title'))
class Meta:
model = Scripter
exclude = ('user','name',)
def clean_title(self):
title = self.cleaned_data['title']
return title
from django.http import HttpResponseRedirect
from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required
from django.shortcuts import render_to_response
from django.template import RequestContext
from scripters.forms import RegistrationForm, LoginForm, CreateScript
from scripters.models import Scripter, Book
from django.contrib.auth import authenticate, login, logout
def ScripterRegistration(request):
if request.user.is_authenticated():
return HttpResponseRedirect('/profile/')
if request.method =='POST':
form = RegistrationForm(request.POST)
if form.is_valid():
user = User.objects.create_user(username=form.cleaned_data['username'],
email = form.cleaned_data['email'],
password = form.cleaned_data['password']
)
user.save()
scripter = Scripter(user=user, name=form.cleaned_data['name'])
scripter.save()
return HttpResponseRedirect('/profile/')
else:
return render_to_response('index.html', {'form': form}, context_instance=RequestContext(request))
else:
form = RegistrationForm()
context = {'form': form}
return render_to_response('index.html', context, context_instance=RequestContext(request))
@login_required
def Profile(request):
if not request.user.is_authenticated():
return HttpResponseRedirect('/login/')
Scripter = request.user.get_profile()
context = {'Scripter': Scripter, 'Book': Book}
return render_to_response('profile.html', context, context_instance=RequestContext(request))
def LoginRequest(request):
if request.user.is_authenticated():
return HttpResponseRedirect('/profile/')
if request.method == 'POST':
submit = LoginForm(request.POST)
if submit.is_valid():
username = submit.cleaned_data['username']
password = submit.cleaned_data['password']
scripter = authenticate(username=username, password=password)
if scripter is not None:
login(request, scripter)
return HttpResponseRedirect('/profile/')
else:
return HttpResponseRedirect('/login/')
else:
submit = LoginForm()
context = {'submit': submit}
return render_to_response('login.html',context, context_instance=RequestContext(request))
def LogoutRequest(request):
logout(request)
return HttpResponseRedirect('/login/')
@login_required
def NewScript(request):
if not request.user.is_authenticated():
return HttpResponseRedirect('/login/')
if request.method =='POST':
title_form = CreateScript(request.POST)
if title_form.is_valid():
new_script = Book.objects.get_or_create(
script_title = title_form.cleaned_data['title']
)
new_script.save()
script = Book(script_title=title_form.cleaned_data['title'])
script.save()
return HttpResponseRedirect('/edit/')
else:
return render_to_response('NewScript.html', {'title_form': title_form}, context_instance=RequestContext(request))
else:
title_form = CreateScript()
context = {'title_form': title_form}
return render_to_response('NewScript.html', context, context_instance=RequestContext(request))
当然了.不知道这里的混乱在哪里。scripter.title
是book
的外键,因此必须给它一个实际的book
而不是字符串。
我在运行django代码时遇到以下错误。我是一个绝对的初学者,我遵循一个教程来创建一个crud应用程序。 在我的html表单中键入信息时,我得到以下错误 ValueError:无法分配django。contrib。auth。模型。0x00000288775D3EF0处的匿名用户对象:“Note.user”必须是“user”实例 从。派克 views.py forms.py 创造html
我在django rest auth中使用自定义寄存器序列化程序来添加注册时的新字段。 我在用户模型中有一个国家/地区模型和一个国家/地区字段,它是国家/地区的FK。 user.models user.serializers 自定义寄存器序列化器 以国家/地区为对象从客户端发送的示例数据 {用户名:“伯尼”,电子邮件:bernie@d.com,国家:{…},密码1:“密码”,密码2:“密码”} 但
从django分配用户对象的正确方法是什么。contrib。auth。模型视图中的模型对象是否具有对用户的外键引用?新联系人示例如下: “new_contact.user=request.user”在/无法分配“”时抛出错误值error:“contact.user”必须是“user”实例,因为请求。用户是一个对象包装器,而不是实际用户(它还不存在)。但如果我建立新的联系。user=auth。get
我在向数据库添加新的自定义用户时遇到问题。我知道网上有一些关于这个问题的帖子,但我找不到解决问题的办法。点击注册页面中的“提交”按钮后,这里是哪个模板: 它一直说:“无法分配” 源代码: 观点。巴拉圭 模特。巴拉圭 表单.PY 设置。.PY: 编辑 完全错误跟踪: 文件"C:\用户\Dawid\AppData\本地\程序\Python\Python35-32\lib\site-包\django-1
如何修复以下错误?我需要快速的帮助。 线程“main”java.lang中出现异常。错误:未解决的编译问题:无法访问main类型的封闭实例。必须使用Main类型的封闭实例限定分配(例如x.new A(),其中x是Main的实例)。 位于com.common.Main.Main(Main.java:16) 这是我的代码供参考。如果我们解决了这个问题,那么应该只打印一次,而不是两次。如何限制“John
问题内容: 我收到此错误为- 无法访问类型为GeoLocation的封闭实例。 必须使用类型为GeoLocation的封闭实例来限定分配(例如xxA(),其中x是GeoLocation的实例)。 新的ThreadTask(i) 上将出现此错误。我不知道为什么会这样。任何建议将不胜感激。 问题答案: 嗨,我找到了一个解决方案;-) 发生此错误的原因是,您尝试创建内部类的实例 而不创建主类的实例。 要