我有一个“标题”CharField(unique=True)的Django模型。我有一个单元测试,它断言创建具有相同标题的第二个实例会抛出一个IntegrityError。(我用的是pytest和pytest-django。)
我有这样的东西:
class Foo(models.Model):
title = models.CharField(unique=True)
def test_title_is_unique(db):
Foo.objects.create(title='foo')
with pytest.raises(IntegrityErr
我有表示它的用户模型和序列化程序类。 class User(models.Model):
username = models.CharField(unique=True, max_length=50)
is_admin = models.BooleanField(default=False) class CreateUserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = (“username”, “is_admin”)
def create(self,
# /uri/one/{pk}/
class ModelOneView(generic.View):
def post(self, request, pk): # pk has the same value as below
Model.objects.filter(pk=pk).update(name=request.POST['name'])
return HttpResponse(status=200)
# /uri/two/{pk}/
class ModelTwoView(generic.View):
def pos
我想为DB中的所有对象更新Django模型中的一个参数。每个对象的值将是不同的,我正在试图计算是否可以将其作为批处理更新来完成,或者是否必须遍历每个项并单独保存。
我使用的模型是Django auth用户模型的扩展:
from django.contrib.auth.models import User
from django.db import models
class Profile(models.Model):
user = models.OneToOneField(User)
position = models.PositiveIntegerField(null=Fa
示例代码:
with transaction.atomic():
# Create and save some models here
try:
model_instance.save()
except IntegrityError:
raise SomeCustomError()
两个问题:
1)如果在异常处理程序中除了重新引发自定义错误之外没有做任何事情,这是否会按预期工作并回滚任何以前保存的模型?
2)从代码风格的角度来看,在这样的情况下不在try块中使用嵌套事务有意义吗?(也就是说,try块中只有一行代码,不打算在事务中保留任何
我有一个模型,它的uniqueblogname元素被设置为Unique=True。在我看来,我这样做:
try:
MyModel.objects.get(uniqueblogname=userinput) #i ask the user to input
#a name of a blog they want to own on the site (all blogs must have a unique name)
#if taken then prints some error messages that the blog name is taken.....
exce
我使用Django 1.5.4,它似乎具有此调试设置,这将导致保存方法在视图成功完成之前不进行保存。这使得用户注册和登录后的功能不可能实现。
我试着设置DEBUG=False,但没有帮助。每个模型都会发生这种情况。我正在使用MySQL,但我非常肯定这一点与此无关。我用的是电子邮件后端,在这里:
from django.contrib.auth.models import User
class EmailBackend():
def get_user(self, user_id):
try:
return User.objects.get(pk
我正在使用Django的方法同时创建多个条目。
为了确保只有在没有例外情况下才提交更改,我正在考虑将添加到代码块中,但我不确定是否需要添加它。
据我理解,我只需要在场景2中添加它,因为在本例中,我执行的查询不止一个。
场景1
在一个查询中创建1.000个条目
Entry.objects.bulk_create([
Entry(headline='This is a test'),
Entry(headline='This is only a test'),
# ...
])
场景2
在1.000的批次中创建10.000个条目
Entry.
我正在与django合作一个大型项目。
我从模型的task内部调用芹菜save,该模型调用循环中调用另一个方法的方法。这就是:
celery task --> function A()
A() --> for i in range(1,100): call function B()
现在,B()被一个atomic()装饰器包装,并在里面有一个select_for_update调用。
我还是得到了TransactionManagementError('select_for_update cannot be used outside of a transaction.'
我正在尝试使用django-background-tasks从任务中更新django模型。我要说的是:
@background(schedule=0)
def difficult_work():
for i in range(0,100):
time.sleep(1)
with transaction.atomic():
workProgress = WorkProgress.objects.filter(id="fixed_work_id_for_testing").select_for_update().get
晚上好,
我目前正在用Django创建一个站点,我用用户配置文件扩展了用户。不过我有个小问题。以下是我的情况:
我扩展了用户配置文件以添加自定义字段。--我将模型添加到用户管理模型中,所以当我添加用户时,我可以直接填写字段来创建配置文件。现在,如果不在这些新的自定义用户字段中添加任何内容,则在用户添加页面中,Django Admin不会抛出一个错误,其中说这些字段为null (而且它们不应该是)--我希望它在这个用户添加Admin页面中抛出一个错误,以便管理员在添加新用户时必须填写配置文件。所有用户都将添加到Admin .中。
这个是可能的吗?非常感谢!
in admin.py
from dj
我正在将hibernate从3.X迁移到hibernate版本5.4.2。我在执行刷新操作时遇到以下错误 javax.persistence.TransactionRequiredException: no transaction is in progress
at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractSharedSessionContract.java:398)
at org.hibernate.intern
我在学习python Django我已经创建了一个自定义用户模型,它正在工作,但是每当我通过Django管理访问任何用户的配置文件时,我都会得到以下错误:
Exception Value:
'date_joined' cannot be specified for UserProfile model form as it is a non-editable field. Check fields/fieldsets/exclude attributes of class UserAdminModel.
这是我的自定义UserProfile模型:
class UserPr
我和在Django论坛上提出了类似的问题。我如何解决这个问题??
我还扩展了一个用户模型,如下所示:
class Profile(models.Model):
street_address = models.CharField(max_length=80, blank=True, null=True)
city = models.CharField(max_length=80, blank=True, null=True)
state = models.CharField(max_length=80, blank=True, null=True)
zip = m
我正在尝试更新django 1.8.4中的两个IntegerField,所以我决定使用原子事务,但我有一些疑问:
1-在这种情况下使用原子事务是个好主意吗?使用它的真正好处是什么?它的效率有多高?
2-我怎样才能检查这两件作品的工作原理是否相同?
一个。
@transaction.atomic
class LinkManager(models.Manager):
def vote_up(self, pk, increment=True):
if increment:
<update field 1, incrementing by 1>
我想在Django管理Many2Many页面中添加可编辑的list_display字段。模型结构如下,
class Genre(models.Model):
name = models.CharField(max_length=250, unique=True)
class Movie(models.Model):
name = models.CharField(max_length=250)
genre = models.ManyToManyField(Genre)
我试着说,
class MovieAdmin(admin.ModelAdmin):
lis