我的公司类与自己有多个M2M关系
class Company(models.Model):
divisions = models.ManyToManyField('self', symmetrical=False, related_name="parent_companies")
parents = models.ManyToManyField('self', symmetrical=False, related_name="divisions_companies")
comp = models.ManyToManyField('self', symmetrical=False, related_name="comp")
friends = models.ManyToManyField('self', symmetrical=False, related_name="friends")
Run Code Online (Sandbox Code Playgroud)
我希望能够像这样动态添加M2M关系,但它显然不起作用.有没有办法动态地做到这一点?
company, was_created = Company.objects.get_or_create(name=info)
setattr(self,key, company)
Run Code Online (Sandbox Code Playgroud) 我从第一天起就在我的项目中使用@login_required装饰器并且它工作正常,但由于某种原因,我开始在某些特定网址上获得"AttributeError:'unicode'对象没有属性'user'"(和那些曾经工作过的人).
示例:我是网站,已记录,然后我点击链接,我收到此错误,通常与没有安装SessionMiddleware的事实相关联.但在我的情况下,有一个,因为我登录该网站,我所在的页面也有一个@login_required.
任何的想法?
该网址定义为:(r'^accept/(?P<token>[a-zA-Z0-9_-]+)?$', 'accept'),
和方法为:@login_required
def accept(request,token): ...
追溯:
Traceback (most recent call last):
File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/core/servers/basehttp.py", line 674, in __call__
return self.application(environ, start_response)
File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
response = self.get_response(request)
File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/core/handlers/base.py", line 141, in get_response
return self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/core/handlers/base.py", line 165, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/core/handlers/base.py", line 100, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/contrib/auth/decorators.py", line 25, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/Users/macbook/dev/pycharm-projects/proj/match/views.py", line 33, in …Run Code Online (Sandbox Code Playgroud) 我刚刚在50小时前开始使用Django和Python ;-)所以这可能很简单,但我被卡住了.
我在我的项目中使用类似的"创建"视图与类似的表单实现没有问题.在这种情况下,我得到上面提到的错误.
我正在使用Pinax ......
2 from django.shortcuts import render_to_response, get_object_or_404
3 from django.template import RequestContext
4 from django.http import HttpResponseRedirect
5 from django.core.urlresolvers import reverse
6 from django.contrib.auth.models import User
7 from django.contrib.auth.decorators import login_required
8 from django.utils.translation import ugettext_lazy as _
9
10 from django.conf import settings
11
12 if "notification" in settings.INSTALLED_APPS:
13 from notification import models as notification
14 else:
15 notification = None
16
17 from location.models import Location
18 from location.forms import LocationForm, LocationUpdateForm …Run Code Online (Sandbox Code Playgroud) 我的一个表单在form.is_valid()上失败
第一次调试Django表单时,我不太确定在哪里查找
表格
class ImageForm(forms.ModelForm):
def __init__(self,user,*args,**kwargs):
super(ImageForm,self ).__init__(*args,**kwargs) # populates the form
class Meta:
model = KMSImageP
fields = ('name',
'caption',
'image',
)
Run Code Online (Sandbox Code Playgroud)
models.py
from photologue.models import ImageModel
class KMSImageP(ImageModel):
name = models.CharField(max_length=100)
slug = AutoSlugField(max_length=45, unique=True, populate_from='name')
num_views = models.PositiveIntegerField(editable=False, default=0)
caption = models.TextField(_('caption'), blank
Run Code Online (Sandbox Code Playgroud)
收到
>>>> image_form.__dict__['_errors']
>>>>django.forms.util.ErrorDict({'image': django.forms.util.ErrorList([<django.utils.functional.__proxy__ object at 0xecc770>])})
Run Code Online (Sandbox Code Playgroud)
因此,我猜我的“图像”字段(从抽象基类继承的ImageField)是失败的原因,但我不知道为什么。
我尝试将属性的类型更改为FileField(因为我的其他表单使用FileField可以正常上传),但仍然失败...无论如何,我一无所知...
两者之间有什么区别(如果有的话)
model.__dict__['title_en']
Run Code Online (Sandbox Code Playgroud)
和
model.__getattribute__('title_en')
Run Code Online (Sandbox Code Playgroud)
什么是最佳实践?