小编sha*_*nyu的帖子

Django - User.DoesNotExist不存在?

我想抓住Django.我在Eclipse上使用Pydev.我写了一个简单的注册页面,我无法工作.Eclipse抱怨User.DoesNotExist未定义.最有可能的是,我遗漏了一些微不足道的东西.这是代码的相关部分:

from django.contrib.auth.models import User
...
class SignUpForm (forms.Form):
    ...
    def clean_username (self): 
        try:
            User.objects.get(username=self.cleaned_data['username'])
        except User.DoesNotExist:
            return self.cleaned_data['username']
        raise forms.ValidationError(USERNAME_ALREADY_IN_USE)
    ...
Run Code Online (Sandbox Code Playgroud)

python authentication django pydev django-models

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

如何覆盖django中超类模型字段的详细名称

假设我有一个继承自SuperFoo的模型Foo:

class SuperFoo(models.Model):
    name = models.CharField('name of SuperFoo instance', max_length=50)
    ...

class Foo(SuperFoo):
    ... # do something that changes verbose_name of name field of SuperFoo
Run Code Online (Sandbox Code Playgroud)

在类Foo中,我想覆盖SuperFoo的name字段的verbose_name.我可以吗?如果没有,是在模型表单定义中设置标签以使其显示在模板中的最佳选项吗?

python django inheritance django-models

27
推荐指数
4
解决办法
7989
查看次数

Django的资产经理 - 选择哪一个?

我想捆绑css和javascript文件.我还想向客户端发送远期过期标头,因此我需要文件版本控制.

通过互联网进行的快速搜索表明,为Django开发了几种资产管理器.以下是我可以达到的列表:

  1. Django的压缩
  2. Django的资产
  3. Django的assetpackager
  4. Django的媒体打捆
  5. Django的mediacat
  6. Django的网站资产
  7. Django的静态管理
  8. Django的压缩机

他们似乎或多或少地执行相同的工作.django-compress,django-compressor和django-site-assets乍一看似乎特别有前途.如果有人提供任何有助于我们在他们之间做出选择的反馈,我将不胜感激.

django django-apps

24
推荐指数
3
解决办法
5815
查看次数

django - 按计算字段排序查询集

我想要一个带有计算字段的模型,我可以应用排序.例如,假设我有以下模型:

class Foo(models.Model):
    A = models.IntegerField(..)
    B = models.IntegerField(..)
    C = models.ForeignKey(..)
Run Code Online (Sandbox Code Playgroud)

我希望有一个D和E字段,由以下公式计算:

  1. D = A - B.
  2. E = A - X(其中X是模型C的相关记录的字段)

如果我不需要应用排序,那么实现这一点将是微不足道的; 我只想添加属性到模型类.但是,我需要按这些字段排序.

一个解决方案是将所有记录提取到内存中并在那里进行排序,我认为这是最后的手段(它将破坏关于分页的事情).

有没有办法实现我正在尝试的东西?任何指导表示赞赏.

编辑:非规范化是一个禁忌.字段X的值非常频繁地改变,并且许多Foo记录与模型C的一个记录相关.X的更新将需要数千个E的更新.

django

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

Django夹具失败,说"DatabaseError:值太长,类型字符变化(50)"

我有一个夹具(json),它在开发环境中加载,但在服务器环境中没有这样做.错误说:" DatabaseError: value too long for type character varying(50)"

我的开发环境是Windows和Postgres 8.4.服务器运行Debian和Postgres 8.3.两个系统中的数据库编码均为UTF8.

就好像夹具中的unicode标记计为服务器上的字符,它们会导致某些字符串超出其字段的最大长度.然而,这在开发环境中不会发生..

django postgresql utf-8

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

fields和base_fields - Django

创建平面页面时,我希望用户从预定义列表中选择模板.为了保持该Flatpage模式不变,我更喜欢ChoiceFieldModelChoiceField(后者提供模板的PK,但我需要为TEMPLATE_NAME字段中的名称):

class NewFlatpageForm(FlatpageForm):

    template_name = forms.ChoiceField(choices = [])
    def __init__(self, *args, **kwargs):
        self.base_fields['template_name'].choices = ProjectTemplate.objects.values_list('path', 'name')
        super(NewFlatpageForm, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

我重写__init__或Django在服务器启动时填充选项,然后不更新列表.

我没有任何管理员经验,但fields在不使用admin时我使用该属性做了类似的事情.但是在这种情况下,我得到一个异常,告诉fields它不是表单的属性.__dict__向我展示了一个base_fields属性并使用它有效.那么,为什么在这里使用base_fields,为什么fields不存在,最后我做了什么hacky?

django django-admin

11
推荐指数
2
解决办法
7295
查看次数

如何修改管理页面上的选择 - django

我的模型有一个名为"state"的字段:

class Foo(models.Model):
    ...
    state = models.IntegerField(choices = STATES)
    ...
Run Code Online (Sandbox Code Playgroud)

对于每个州,可能的选择是所有州的某个子集.例如:

if foo.state == STATES.OPEN:     #if foo is open, possible states are CLOSED, CANCELED
    ...
if foo.state == STATES.PENDING:  #if foo is pending, possible states are OPEN,CANCELED
    ...
Run Code Online (Sandbox Code Playgroud)

因此,当foo.state更改为新状态时,其可能的选择集也会更改.

如何在管理员添加/更改页面上实现此功能?

python django django-models django-admin

9
推荐指数
2
解决办法
8979
查看次数

django模板中的转义问题

假设我有这个字符串:

s = '<p>Hello!</p>'
Run Code Online (Sandbox Code Playgroud)

当我将此变量传递给模板时,我希望它呈现为原始html.查看文档,我看到我可以使用安全过滤器:

{{s|safe}}
Run Code Online (Sandbox Code Playgroud)

或禁用autoescape:

{%autoescape off}
{{s}}
{%endautoescape%}
Run Code Online (Sandbox Code Playgroud)

或者在python代码中声明它是安全的:

from django.utils.safestring import mark_safe
s = mark_safe(s)
Run Code Online (Sandbox Code Playgroud)

这些选项都不适用于我.无论我做什么,字符串显示为:

<p>Hello!</p>
Run Code Online (Sandbox Code Playgroud)

我一定是错过了什么,只是弄不清楚是什么.是否存在某些不允许逃避的安全设置?

编辑:奇怪,我重新启动计算机后问题似乎消失了.

html python django rendering django-templates

9
推荐指数
2
解决办法
9317
查看次数

django - 如何从自定义小部件中访问表单字段

下面的类继承自Textarea小部件,并具有javascript代码,显示用户可以在textarea中输入的字符数.

class TextAreaWithCharCounter(forms.Textarea):

    class Media:
        js = ('js/jquery.charcounter.js',)

    def render(self, name, value, attrs = None):
        id = attrs['id']
        max_length = self.attrs.get('max_length', 200)
        output = super(TextAreaWithCharCounter, self).render(name, value, attrs)
        output += mark_safe(u'''
                        <script type="text/javascript">
                        $("#%s").charCounter(%d, {classname:"charcounter"});
                        </script>'''%(id, max_length))        
        return output
Run Code Online (Sandbox Code Playgroud)

表格代码的相关部分如下:

class MyForm(forms.Form):
    foo = forms.CharField(max_length = 200, widget = TextAreaWithCharCounter(attrs={'max_length':200}))
    ...
Run Code Online (Sandbox Code Playgroud)

你可以看到我传递了max_length两次参数,一个用于字段,一个用于小部件.更好的方法是从窗口小部件内部访问表单字段并获取其max_length属性,以便窗口小部件不需要max_length参数.我怎样才能做到这一点?

django django-forms

9
推荐指数
2
解决办法
6968
查看次数

django - 切片后重新排序查询集

我从Foo模型中获取最新的5行,该模型按日期时间字段排序.

qs = Foo.objects.all()[:5]
Run Code Online (Sandbox Code Playgroud)

在下面的步骤中,我想通过一些其他标准(实际上,通过相反方向的相同datetime字段)对查询集重新排序.但是不允许在切片后重新排序.reverse()取消第一个排序,给我一个不同的查询集.有没有办法实现我想要的,而无需从查询集创建列表并使用它进行排序?

django django-orm django-queryset

7
推荐指数
2
解决办法
4913
查看次数