我正在Django写一个简单的游戏,所有的事情都是正确的,但突然......我遇到了以下错误:
我不知道这些代码有什么问题:
(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) 我需要在用户注册期间动态生成uniqe用户名.
算法:
当用户的全名是"John Doe"时,用户名应为"jdoe"(如果可用).如果没有,它应该生成jdoe1,jdoe2等,直到用户名可用.
任何现有的简单解决方案?
我在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) 总新手在这里.我正在为我的主页创建自定义注册表单.我做了以下事情:
Run Code Online (Sandbox Code Playgroud)class RegForm(forms.Form): email = forms.EmailField() password=forms.PasswordInput() password2=forms.PasswordInput() phone= forms.CharField(max_length=10)
<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)
Run Code Online (Sandbox Code Playgroud)def register(request): registered = False if request.method == 'POST': form = …
我有一个模型,我必须记录一个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) 如果你看到链接,他们已经给出了该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对的吗?谁能指出我错在哪里?
我试图只显示不超过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) 这是我的模型和模型经理。我基本上想覆盖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) 我已经竭尽全力尝试为此提出一个解决方案,但是我目前对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
我在一个模型中有两个字段,我只想在管理表单中有一个有效字段.如果一个字段有效,则另一个字段无法插入数据,反之亦然.但是有必要将数据放在两个字段之一中进行保存.
那可能吗?
谢谢!
django ×10
django-models ×10
python ×6
django-forms ×2
django-users ×1
django-views ×1
forms ×1
html ×1
orm ×1
postgresql ×1
sql ×1