小编Ser*_*jik的帖子

Django-Registration和Django-Profile,使用您自己的自定义表单

我正在使用django-registration和django-profile来处理注册和配置文件.我想在注册时为用户创建个人资料.我创建了一个自定义注册表单,并使用以下教程将其添加到urls.py:

http://dewful.com/?p=70

本教程中的基本思想是覆盖默认注册表单以同时创建配置文件.

forms.py - 在我的个人资料应用中

from django import forms
from registration.forms import RegistrationForm
from django.utils.translation import ugettext_lazy as _
from profiles.models import UserProfile
from registration.models import RegistrationProfile

attrs_dict = { 'class': 'required' }

class UserRegistrationForm(RegistrationForm):
    city = forms.CharField(widget=forms.TextInput(attrs=attrs_dict))

    def save(self, profile_callback=None):
        new_user = RegistrationProfile.objects.create_inactive_user(username=self.cleaned_data['username'],
        password=self.cleaned_data['password1'],
        email=self.cleaned_data['email'])
        new_profile = UserProfile(user=new_user, city=self.cleaned_data['city'])
        new_profile.save()
        return new_user
Run Code Online (Sandbox Code Playgroud)

在urls.py中

from profiles.forms import UserRegistrationForm
Run Code Online (Sandbox Code Playgroud)

url(r'^register/$',
                           register,
                           {'backend': 'registration.backends.default.DefaultBackend', 'form_class' : UserRegistrationForm},
                           name='registration_register'),
Run Code Online (Sandbox Code Playgroud)

显示表单,我可以在City中输入,但不会在DB中保存或创建条目.

python django profile registration django-forms

31
推荐指数
2
解决办法
4万
查看次数

用户组和权限

我需要为用户组实现用户权限(非常类似于facebook组).例如,每个组可以拥有具有以下权限的成员:can_post,can_delete,can_ban等.当然,一个用户可以是许多组的成员,并且组可以拥有许多具有不同权限的不同用户.我需要什么型号才能使用此功能?

python django usergroups django-models django-permissions

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

Django中的自定义排序

你如何在Django中定义一个特定的顺序QuerySet

具体来说,如果我有QuerySet这样的话:['a10', 'a1', 'a2'].

定期订购(使用Whatever.objects.order_by('someField'))会给我['a1', 'a10', 'a2'],而我正在寻找:['a1', 'a2', 'a10'].

定义我自己的排序技术的正确方法是什么?

python django django-models

30
推荐指数
2
解决办法
2万
查看次数

下载远程图像并将其保存到Django模型

我正在编写一个Django应用程序,它将获取特定URL的所有图像并将它们保存在数据库中.

但我没有介绍如何在Django中使用ImageField.

Settings.py

MEDIA_ROOT = os.path.join(PWD, "../downloads/")

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "htp://media.example.com/"
MEDIA_URL = '/downloads/'
Run Code Online (Sandbox Code Playgroud)

models.py

class images_data(models.Model):
        image_id =models.IntegerField()
        source_id = models.IntegerField()
        image=models.ImageField(upload_to='images',null=True, blank=True)
        text_ind=models.NullBooleanField()
        prob=models.FloatField()
Run Code Online (Sandbox Code Playgroud)

download_img.py

def spider(site):
        PWD = os.path.dirname(os.path.realpath(__file__ ))
        #site="http://en.wikipedia.org/wiki/Pune"
        hdr= {'User-Agent': 'Mozilla/5.0'}
        outfolder=os.path.join(PWD, "../downloads")
        #outfolder="/home/mayank/Desktop/dreamport/downloads"
        print "MAYANK:"+outfolder
        req = urllib2.Request(site,headers=hdr)
        page = urllib2.urlopen(req)
        soup =bs(page)
        tag_image=soup.findAll("img")
        count=1;
        for image in tag_image:
                print "Image: %(src)s" % image
                filename = …
Run Code Online (Sandbox Code Playgroud)

python django django-models

30
推荐指数
3
解决办法
2万
查看次数

将jQuery脚本添加到Django管理界面

我会稍微简化一下情况.假设我有一个名为Lab的模型.

from django.db import models

class Lab(models.Model):
    acronym = models.CharField(max_length=20)
    query = models.TextField()
Run Code Online (Sandbox Code Playgroud)

该领域query几乎总是与该领域相同acronym.因此,我希望在Django管理界面queryacronym字段中输入文本后自动填写该字段.此任务必须由jQuery脚本执行.

所以,如果我举个例子:你想通过Django管理界面向数据库添加一个新的实验室.单击"添加"按钮,然后使用两个字段登陆空白表单.您可以手动acronym使用诸如此类的值填充该字段,ABCD然后该query字段应以相同的值自动完成,这意味着ABCD.

我该怎么办?

python django jquery admin

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

如何在django admin中创建对象时自动插入当前用户?

我有一个带有文章的数据库

submitter = models.ForeignKey(User, editable=False)
Run Code Online (Sandbox Code Playgroud)

User进口如下:

from django.contrib.auth.models import User. 
Run Code Online (Sandbox Code Playgroud)

我想在特定用户提交文章时自动将当前活动用户插入提交者字段.

有人有什么建议吗?

python django django-admin

25
推荐指数
2
解决办法
2万
查看次数

已经在/ appname /注册:模型用户已经注册

我正在尝试将django.contrib.auth用户与我自己的UserProfile连接,当我访问该网站时,我收到了"AlreadyRegistered"错误.

这是追溯:

Environment:


Request Method: GET
Request URL: myurl.com/django/appname/

Django Version: 1.4.2
Python Version: 2.6.8
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'polls',
 'appname',
 'registration',
 'django.contrib.humanize')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
  101.                             request.path_info)
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in resolve
  298.             for pattern in self.url_patterns:
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in url_patterns
  328.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in urlconf_module
  323.             self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.6/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)
File "/var/www/mysite/mysite/urls.py" in <module>
  3. …
Run Code Online (Sandbox Code Playgroud)

python django django-registration

25
推荐指数
1
解决办法
1万
查看次数

在Django Query中使用.extra(select = {...})引入的值上使用.aggregate()?

我试图计算一个玩家每周玩的次数如下:

player.game_objects.extra(
    select={'week': 'WEEK(`games_game`.`date`)'}
).aggregate(count=Count('week'))
Run Code Online (Sandbox Code Playgroud)

但是Django抱怨说

FieldError: Cannot resolve keyword 'week' into field. Choices are: <lists model fields>
Run Code Online (Sandbox Code Playgroud)

我可以在这样的原始SQL中做到这一点

SELECT WEEK(date) as week, COUNT(WEEK(date)) as count FROM games_game
WHERE player_id = 3
GROUP BY week
Run Code Online (Sandbox Code Playgroud)

如果没有在Django中执行原始SQL,有没有一个好方法呢?

python mysql django django-queryset django-aggregation

23
推荐指数
1
解决办法
9175
查看次数

这是验证Django模型字段的方法吗?

据我所知,当一个人创建一个Django应用程序时,在将表单插入到模型实例中然后将其写入数据库之前,表单会对数据进行验证.但是如果我想在数据模型层创建一个额外的保护层,那么我在目前的"最佳实践"下面做了什么?我正在努力确保评论者的名字不能被省略,也不能留空.我应该在'clean'方法中进行任何自定义验证,就像我在这里做的那样然后'保存'调用'full_clean'调用'clean'?如果不是,那么首选方法是什么?谢谢.

class Reviewer(models.Model):
    name = models.CharField(max_length=128, default=None)

    def clean(self, *args, **kwargs):
        if self.name == '':
            raise ValidationError('Reviewer name cannot be blank')
        super(Reviewer, self).clean(*args, **kwargs)

    def full_clean(self, *args, **kwargs):
        return self.clean(*args, **kwargs)

    def save(self, *args, **kwargs):
        self.full_clean()
        super(Reviewer, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

python django django-models

23
推荐指数
3
解决办法
2万
查看次数

覆盖ModelForm中的初始值

在我的Django(1.2)项目中,我想在模型中预填充一个字段,但我的新值被忽略了.这是片段:

class ArtefactForm(ModelForm):
    material = CharField(widget=AutoCompleteWidget('material', force_selection=False))

    def __init__(self, *args, **kwargs):
        super(ArtefactForm, self).__init__(*args, **kwargs)
        self.fields['material'].initial = 'Test'
Run Code Online (Sandbox Code Playgroud)

我也试过self.base_fields,但没有效果:表格中始终显示数据库值.有任何想法吗?

python django django-forms

22
推荐指数
2
解决办法
2万
查看次数