小编phi*_*o20的帖子

动态地将ManyToMany关系添加到Django对象

我的公司类与自己有多个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)

python django dynamic

4
推荐指数
1
解决办法
1691
查看次数

为什么我在某些指定url上得到"AttributeError:'unicode'对象没有属性'user'"?

我从第一天起就在我的项目中使用@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)

python django login-required

4
推荐指数
1
解决办法
4112
查看次数

Django用户出错:"AttributeError:'用户'对象没有属性'get'"

我刚刚在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)

django django-forms pinax

3
推荐指数
1
解决办法
7005
查看次数

调试Django Forms验证错误

我的一个表单在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可以正常上传),但仍然失败...无论如何,我一无所知...

python django django-forms

3
推荐指数
1
解决办法
4159
查看次数

Python动态字段查找之间的区别

两者之间有什么区别(如果有的话)

model.__dict__['title_en']
Run Code Online (Sandbox Code Playgroud)

model.__getattribute__('title_en')
Run Code Online (Sandbox Code Playgroud)

什么是最佳实践?

python

1
推荐指数
2
解决办法
1136
查看次数

标签 统计

django ×4

python ×4

django-forms ×2

dynamic ×1

login-required ×1

pinax ×1