我正在使用一个ImageField 在我的模型上存储个人资料图片.
如果没有定义图像,如何将其设置为返回默认图像?
我在从表单中保存多个字段时遇到问题.这是我的模特:
class TextIssue(models.Model):
Issue = models.CharField(max_length=150, unique=True)
def __unicode__(self):
return self.Issue
class PadIssue(models.Model):
Issue = models.CharField(max_length=150, unique=True)
def __unicode__(self):
return self.Issue
class PHIssue(models.Model):
Data = models.ForeignKey(Data)
TextIssue = models.ManyToManyField(TextIssue, blank=True, null=True)
PadIssue = models.ManyToManyField(PadIssue, blank=True, null=True)
Notes = models.TextField()
def clean(self):
from django.core.exceptions import ValidationError
if self.TextIssue is None and self.PadIssue is None:
raise ValidationError('You must choose at least one issue category.')
if self.Notes is None:
raise ValidationError('You must write a note regarding the issues selected above.')
class PHIssueForm(ModelForm):
class …Run Code Online (Sandbox Code Playgroud) 我以列表的形式获得order_by字段.我想用django orm通过多个字段order_by.列表如下:
orderbyList = ['check-in','check-out','location']
Run Code Online (Sandbox Code Playgroud)
我写的查询是这样的:
modelclassinstance.objects.all().order_by(*orderbyList)
Run Code Online (Sandbox Code Playgroud)
我在列表中所期待的一切都是动态的.我没有预先设定的数据集.有人可以告诉我如何用这个写一个django ORM吗?
我遇到了ManytoMany关系的问题,当我保存它时(通过管理员)并没有在模型中更新,并尝试在附加到post_save信号的函数中或在save_model关联的函数内使用新值AdminModel.我试图通过使用带有id的get函数重新加载这些函数中的对象但它仍然具有旧值.
这是交易问题吗?交易结束时是否抛出信号?
谢谢,
我目前的项目正在扩展地理位置,所以我正在尝试集成GeoDjango并为初学者导入一些shapefile.我的设置包括以下内容:
South 正在整个项目中使用现在我已经在我的区域的新应用程序中创建了一个GeoDjango模型.像往常一样,我已经完成了./manage.py schemamigration --initial,当我尝试做的时候./manage.py migrate $my_new_app --database="gis",它失败了django.db.utils.DatabaseError: no such table: south_migrationhistory,这是我猜的正确,因为south_migrationhistory在我的主数据库中.
有没有人有这样的设置经验,可以帮助我吗?
编辑:我已经改变了标题,因为我意识到这个问题实际上不是GeoDjango特有的.
在Django过滤器语句中,如果我写的话有什么区别:
.filter(name__exact='Alex')
Run Code Online (Sandbox Code Playgroud)
和
.filter(name='Alex')
Run Code Online (Sandbox Code Playgroud)
谢谢
我有两个简单的模型,一个代表电影,另一个代表电影的评级.
class Movie(models.Model):
id = models.AutoField(primary_key=True)
title = models.TextField()
class Rating(models.Model):
id = models.AutoField(primary_key=True)
movie = models.ForeignKey(Movie)
rating = models.FloatField()
Run Code Online (Sandbox Code Playgroud)
我的期望是,我能够首先创建一个Movie和一个Review引用该电影,然后将它们都提交到数据库,只要我提交了Movie第一个,以便给它一个主键供Review引用.
the_hobbit = Movie(title="The Hobbit")
my_rating = Rating(movie=the_hobbit, rating=8.5)
the_hobbit.save()
my_rating.save()
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,它仍然IntegrityError抱怨我正在尝试指定一个空外键,即使Movie已经提交并且现在有一个主键.
IntegrityError: null value in column "movie_id" violates not-null constraint
Run Code Online (Sandbox Code Playgroud)
我通过添加一些print声明来证实这一点:
print "the_hobbit.id =", the_hobbit.id # None
print "my_rating.movie.id =", my_rating.movie.id # None
print "my_rating.movie_id =", my_rating.movie_id # None
the_hobbit.save()
print "the_hobbit.id =", the_hobbit.id # …Run Code Online (Sandbox Code Playgroud) 我试图通过Class字段来过滤多对多关系.
引用Django文档,我将解释我的目标
class Person(models.Model):
name = models.CharField(max_length=128)
def __unicode__(self):
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
def __unicode__(self):
return self.name
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64)
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我的目标应该是过滤多对多的关系,并且只获得从某个日期开始加入某个组的人(date_joined字段).
可能吗?
我做了一个模型(models.py):
class opetest(models.Model):
name = models.CharField(max_length=200)
author = models.ForeignKey(User, related_name='author')
description = models.TextField(u'Test description', help_text = u'Some words about quiz')
pub_date = models.DateTimeField('date published', blank=False)
vacancies = models.ManyToManyField(Vacancy, blank=True)
students = models.ManyToManyField(User, blank=True, related_name='opetests') #This field I want to edit on "User change page"
estimate = models.IntegerField(default = 0, help_text = u'Estimate time in hours. \'0\' - unlimited')
Run Code Online (Sandbox Code Playgroud)
然后我尝试添加内联块以允许opetest在"更改用户"页面(admin.py)上进行分配:
class ProfileAdmin(UserAdmin):
filter_horizontal = ('opetests',)
admin.site.unregister(User)
admin.site.register(User, ProfileAdmin)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
'ProfileAdmin.filter_horizontal' refers to field 'opetests' that is missing from model …Run Code Online (Sandbox Code Playgroud) django django-models django-orm django-admin manytomanyfield
我有2个表products并catagories通过外键连接.我需要products.new_cost使用字段更新字段catagories.price_markup如下:
UPDATE products p
INNER JOIN categories c ON p.category_id = c.id
SET p.new_cost = ROUND(p.pleer_cost * (1 + c.price_markup/100), -1)
WHERE p.update = 1
Run Code Online (Sandbox Code Playgroud)
在SQL中它很容易,但是如何使用Django ORM呢?
我的简化尝试不起作用Cannot resolve keyword 'category.price_markup' into field.:
Product.actived.select_related('category').filter(update=1)).update(new_cost=F('pleer_cost') * F('category.price_markup'))
Run Code Online (Sandbox Code Playgroud) django ×10
django-orm ×10
django-admin ×2
django-forms ×1
django-south ×1
filtering ×1
python ×1