标签: django-models

"django.core.exceptions.ValidationError"错误

我正在Django写一个简单的游戏,所有的事情都是正确的,但突然......我遇到了以下错误:

  • Django.v = 1.7
  • Python.v = 3.4

我不知道这些代码有什么问题:

    (test)alireza@alireza:~/test/test1$ python manage.py syncdb
    Operations to perform:
      Synchronize unmigrated apps: django_admin_bootstrapped, django_admin_bootstrapped_bootstrap3, crispy_forms
      Apply all migrations: contenttypes, admin, auth, arosis, sessions
    Synchronizing apps without migrations:
      Creating tables...
      Installing custom SQL...
      Installing indexes...
    Running migrations:
      Applying arosis.0008_auto_20150212_0826...Traceback (most recent call last):
      File "manage.py", line 10, in <module>
        execute_from_command_line(sys.argv)
      File "/home/alireza/test/lib/python3.4/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
        utility.execute()
      File "/home/alireza/test/lib/python3.4/site-
...
...
...

        return self.to_python(value)
      File "/home/alireza/test/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 1252, in to_python
        params={'value': value},
    django.core.exceptions.ValidationError: ["'' value …
Run Code Online (Sandbox Code Playgroud)

python sql django orm django-models

0
推荐指数
1
解决办法
8007
查看次数

使用django中的名字和姓氏生成uniq用户名

我需要在用户注册期间动态生成uniqe用户名.

算法:

当用户的全名是"John Doe"时,用户名应为"jdoe"(如果可用).如果没有,它应该生成jdoe1,jdoe2等,直到用户名可用.

任何现有的简单解决方案?

python django django-models django-forms

0
推荐指数
1
解决办法
1696
查看次数

Django get_or_create尝试创建行,抛出IntegrityError?

我在Django 1.7和Postgres工作,并使用ORM创建一些新行.我使用get_or_create如下:

    p, created = Practice.objects.get_or_create(
        code=row[1],
        name=row[2],
        address1=row[3],
        address2=row[4],
        address3=row[5],
        address4=row[6],
        postcode=row[7]
    )
Run Code Online (Sandbox Code Playgroud)

但当我尝试运行时,我得到:

django.db.utils.IntegrityError: duplicate key value violates unique constraint
DETAIL:  Key (code)=(A82057) already exists
Run Code Online (Sandbox Code Playgroud)

这是关于什么的?我认为重点get_or_create是只尝试创建新行,如果它们尚不存在.

我的模型看起来像这样:

class Practice(TimeStampedModel):
    code = models.CharField(max_length=6, primary_key=True, db_index=True)
    name = models.CharField(max_length=200)
    address1 = models.CharField(max_length=200, null=True, blank=True)
    address2 = models.CharField(max_length=200, null=True, blank=True)
    address3 = models.CharField(max_length=200, null=True, blank=True)
    address4 = models.CharField(max_length=200, null=True, blank=True)
    postcode = models.CharField(max_length=9, null=True, blank=True)

def __str__(self):
    return self.name

class Meta:
    app_label = 'frontend'
    ordering = ['name'] …
Run Code Online (Sandbox Code Playgroud)

django django-models

0
推荐指数
1
解决办法
1036
查看次数

Django自定义表单不呈现

总新手在这里.我正在为我的主页创建自定义注册表单.我做了以下事情:

  1. 创建formreg.py
class RegForm(forms.Form):
    email = forms.EmailField()
    password=forms.PasswordInput()
    password2=forms.PasswordInput()
    phone= forms.CharField(max_length=10)
Run Code Online (Sandbox Code Playgroud)
  1. 在Index.html(表单的位置)中,我写了以下内部表单标记:

<div class="form-group">
  {{ form.email.errors }}
  <label for="{{form.email.id_for_label}}">
    <b>Email</b>
  </label>
  {{ form.email }}
</div>
<div class="form-group">
  {{ form.non_field_errors }}
  <label for="{{ form.password.id_for_label }}">
    <b>Password</b>
  </label>
  {{ form.password }}
</div>
<div class="form-group">
  {{ form.non_field_errors }}
  <label for="register_password2">
    <b>Re-enter Password</b>
  </label>
  {{ form.password2 }}
</div>
<div class="form-group">
  {{ form.non_field_errors }}
  <label for="phone">
    <b>Phone Number</b>
  </label>
  {{ form.phone }}
</div>
Run Code Online (Sandbox Code Playgroud)

  1. 在views.py中我添加了以下内容:
def register(request):
    registered = False
    if request.method == 'POST':
        form = …
Run Code Online (Sandbox Code Playgroud)

html python forms django django-models

0
推荐指数
1
解决办法
50
查看次数

如何在Django中记录模型的每日排名?

我有一个模型,我必须记录一个PositiveSmallIntegerField对象,每天更新相关的分数.

class Student(models.Model):
    name = models.CharField(max_length=20)
    grade = models.ForeignKey(Grade)
    rank = ??
Run Code Online (Sandbox Code Playgroud)

具有此模型的对象数量永远不会超过100,并且分数/等级必须保留180天.该数据库是Postgresql 9.2.

每天从另一个应用程序的分数计算排名,我想存储在与学生模型相关的数据库中,我坚持模型设计,我不知道,应该为排名做些什么?Django中有重复的字段吗?

任何线索或经验将非常感激

谢谢.

更新:(添加示例)

数据库必须看起来像这样,

+---------+-------+----------+----------+----------+----------+----------+----------+
| Student | Grade | 08-01-15 | 08-02-15 | 08-03-15 | 08-04-15 | 08-05-15 | 08-06-15 |
+---------+-------+----------+----------+----------+----------+----------+----------+
| Alex    |     5 |        2 |        1 |        1 |        2 |        3 |        2 |
| John    |     5 |        3 |        2 |        3 |        4 |        2 |        4 |
| Susan   |     5 |        1 …
Run Code Online (Sandbox Code Playgroud)

python django postgresql database-design django-models

0
推荐指数
1
解决办法
2171
查看次数

类型对象'用户'在Django应用程序中没有属性'is_staff'

如果你看到链接,他们已经给出了该User对象有一个属性is_staff.我试图看看is_staff在单元测试中创建新用户时的默认值是什么.代码非常简单:

def test_login_user(self):
        User.objects.create_user('john', 'example@abc.edu', 'password')
        print self.client.login(username='john', password='password')
        print User.is_staff
        if User.is_staff:
            s = requests.get('http://127.0.0.1:8000/dashboard/')
        else:
            s = HttpResponseForbidden()
        print s.status_code
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试打印时print User.is_staff,它正在显示

类型对象'用户'在Django应用程序中没有属性'is_staff'

我已经知道用户不是员工用户所以输出User.is_staff应该是False对的吗?谁能指出我错在哪里?

python django django-models django-testing django-users

0
推荐指数
1
解决办法
940
查看次数

如何调用模型方法?

我试图只显示不超过4天的对象.我知道我可以使用过滤器:

new = Books.objects.filter(pub_date__gt = datetime.now() - timedelta(days=4))
Run Code Online (Sandbox Code Playgroud)

但我真的想用一种模态方法进行锻炼.

该方法在模型Book中定义,称为published_recetnly.

所以我的问题是如何在views.py中调用模态方法?

这是我目前的代码:

views.py

def index(request):
    new = Books.objects.filter(pub_date__gt = datetime.now() - timedelta(days=4))
    return render_to_response('books/index.html', {'new':new}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

的index.html

 {% if book in new %}
    {{ book.title }}
 {% endif %}
Run Code Online (Sandbox Code Playgroud)

models.py

class Book(models.Model)
    pub_date = models.DateTimeField('date published')

    def published_recently(self):
        now = timezone.now()
        return now - datetime.timedelta(days=4) <= self.pub_date <= now
Run Code Online (Sandbox Code Playgroud)

python django django-models django-queryset django-managers

0
推荐指数
1
解决办法
619
查看次数

Modelmanager不覆盖保存方法

这是我的模型和模型经理。我基本上想覆盖save方法,因此我可以在保存Companymanager之前执行一些操作。

我已经定义了一个模型管理器,但是当我尝试保存公司对象时没有调用它的保存方法。

class CompanyManager(models.Manager):
    """
    Custom model manager to return a random scenario
    """
    def save(self, *args, **kwargs):
        #User.objects.create()
        #print '*args == ', *args
        #print '*kwargs == ', *kwargs
        #User.objects.filter()
        for each in args:
            print 'each=',each



class Company(models.Model):

    objects =CompanyManager()

    COMPANY_SIZE = (
    ('1-10', '1-10'),
    ('11-50', '11-50'),
    ('51-200', '51-200'),
    ('201-500', '200-500'),
    ('501-1000', '501-1000'),
    ('1001-5000', '1001-5000'),
    ('5001-10000', '5001-10000'),
    ('10000+', '10000+'),
    )   

    INDUSTRY = (
        ('Telecom','Telecom'),
        ('Technology','Technology')
        )

    users = models.ManyToManyField(User)
    description = models.CharField(max_length=500,default='')
    size = models.CharField(max_length=10,choices=COMPANY_SIZE,default='1-10')
    industry = models.CharField(max_length=100,choices=INDUSTRY,default='---')
    url = …
Run Code Online (Sandbox Code Playgroud)

django django-models

0
推荐指数
1
解决办法
450
查看次数

列“ user_id”中的空值违反了Django 1.9中的非空约束

我已经竭尽全力尝试为此提出一个解决方案,但是我目前对Python和Django的了解只能使我到目前为止。

我正在创建一个基本的票务系统,并且在创建Profile模型然后将Ticket模型分离到其自己的应用程序之前,CreateView一直可以正常工作。重构代码时已经创建了几张票证,这就是为什么我知道ListView有效,DeleteView和DetailView有效的原因。直到我按下“保存”按钮,CreateView才起作用。

我的观点和模型如下;我希望有人可以帮我解决这个问题。

票务模型

from django.db import models
from django.contrib.auth.models import User
....
from qcapp.models import Profile


class Ticket(models.Model):
    # Relations
    user = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name="tickets", verbose_name="user")
    # Attributes
    title = models.CharField(max_length=250, verbose_name="Title", help_text="Enter a Ticket Title")
    color = models.CharField(max_length=7,
                             default="#ffffff",
                             validators=[RegexValidator("(^#[0-9a-fA-F]{3}$)|(^#[0-9a-fA-F]{6}$)")],
                             verbose_name="Color",
                             help_text="Enter the hex color code, like #ccc or #cccccc")
    description = models.TextField(max_length=1000)
    created_date = models.DateTimeField(default=timezone.now, verbose_name='Created Date')
    created_by = models.ForeignKey(User, related_name='created_by_user')
    # Attributes
    # Object Manager
    objects = managers.ProjectManager()

    # Meta and String
    class Meta:
        verbose_name = …
Run Code Online (Sandbox Code Playgroud)

django django-templates django-models django-forms django-views

0
推荐指数
1
解决办法
4259
查看次数

Django:两个字段,一个有效

我在一个模型中有两个字段,我只想在管理表单中有一个有效字段.如果一个字段有效,则另一个字段无法插入数据,反之亦然.但是有必要将数据放在两个字段之一中进行保存.

那可能吗?

谢谢!

django django-models

0
推荐指数
1
解决办法
195
查看次数