Tag: django models

创buildDjango模型或更新(如果存在)

我想创build一个模型对象,如Person,如果人的id不存在,或者我将获得该person对象。 创build一个新人的代码如下: class Person(models.Model): identifier = models.CharField(max_length = 10) name = models.CharField(max_length = 20) objects = PersonManager() class PersonManager(models.Manager): def create_person(self, identifier): person = self.create(identifier = identifier) return person 但是我不知道要去哪里查看并获取现有的人物。

如何在Django中获取当前login用户的用户ID?

如何获取当前login的用户的ID? 在models.py : class Game(models.model): name = models.CharField(max_length=255) owner = models.ForeignKey(User, related_name='game_user', verbose_name='Owner') 在views.py : gta = Game.objects.create(name="gta", owner=?)

在Django中selectDISTINCT个别列?

我很好奇,如果有什么办法在Django做一个查询不是“ SELECT * FROM… ”下面。 我试图做一个“ SELECT DISTINCT columnName FROM … ”。 具体来说,我有一个模型,看起来像: class ProductOrder(models.Model): Product = models.CharField(max_length=20, promary_key=True) Category = models.CharField(max_length=30) Rank = models.IntegerField() Rank是Category的排名。 我希望能够遍历所有类别在该类别中的每个等级上进行一些操作。 我想首先获取系统中所有类别的列表,然后查询该类别中的所有产品并重复,直到处理完每个类别。 我宁愿避免原始的SQL,但如果我必须去那里,那会很好。 尽pipe我从来没有在Django / Python中编写原始SQL。

使用UUID作为Django模型中的主键(通用关系影响)

出于多种原因^,我想在我的一些Django模型中使用UUID作为主键。 如果我这样做,我仍然可以使用外部应用程序,如“contrib.comments”,“Django-voting”或“Django-tagging”,通过ContentType使用generics关系? 以“django-voting”为例,Vote模型如下所示: class Vote(models.Model): user = models.ForeignKey(User) content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() object = generic.GenericForeignKey('content_type', 'object_id') vote = models.SmallIntegerField(choices=SCORES) 这个应用程序似乎假设被投票的模型的主键是一个整数。 内置的评论应用程序似乎能够处理非整数PK,但: class BaseCommentAbstractModel(models.Model): content_type = models.ForeignKey(ContentType, verbose_name=_('content type'), related_name="content_type_set_for_%(class)s") object_pk = models.TextField(_('object ID')) content_object = generic.GenericForeignKey(ct_field="content_type", fk_field="object_pk") 这是“整数PK假设”的问题是第三方应用程序的常见情况,这将使使用UUID痛苦? 或者,我可能会误读这种情况吗? 有没有办法在Django中使用UUID作为主键而不会造成太大麻烦? ^一些原因:隐藏对象计数,防止url“ID爬行”,使用多个服务器创build非冲突的对象,…

将Django auth UserAdmin用于自定义用户模型

从Django.Contrib.Auth文档 : 扩展Django的默认用户如果你对Django的用户模型完全满意,而你只是想添加一些额外的configuration文件信息,你可以简单地django.contrib.auth.models.AbstractUser并添加你的自定义configuration文件字段。 该类提供了默认用户的完整实现作为抽象模型。 说完了。 我创build了如下的新模型: class MyUser(AbstractUser): some_extra_data = models.CharField(max_length=100, blank=True) 这显示在pipe理员几乎像Django的标准User 。 但是,admin中最重要的区别是密码 – (重新)设置字段不存在,而是显示正常的CharField。 我真的必须重写pipe理configuration中的东西来得到这个工作吗? 如果是这样,我该怎么做,有点干的方式(即没有从Django源复制东西…呃…)?

Django,从模型方法查询过滤

我有这些模型: def Foo(Models.model): size = models.IntegerField() # other fields def is_active(self): if check_condition: return True else: return False def Bar(Models.model): foo = models.ForeignKey("Foo") # other fields 现在我想查询具有活动Foo的酒吧,例如: Bar.objects.filter(foo.is_active()) 我收到错误,如 SyntaxError at / ('non-keyword arg after keyword arg' 我怎样才能做到这一点?

Django – 如何创build一个文件并将其保存到模型的FileField?

这是我的模型。 我想要做的是生成一个新的文件,并覆盖现有的一个模型实例保存: class Kitten(models.Model): claw_size = … license_file = models.FileField(blank=True, upload_to='license') def save(self, *args, **kwargs): #Generate a new license file overwriting any previous version #and update file path self.license_file = ??? super(Request,self).save(*args, **kwargs) 我看到很多关于如何上传文件的文档。 但是,我如何生成一个文件,将其分配给模型字段,并让Django将其存储在正确的位置?

Django:将一整套模型对象转换为单个字典

如果你是从谷歌来到这里寻找模型的话,跳过我的问题,然后跳到第一个答案。 我的问题只会让你困惑。 在Django中,是否有一个好的方法将整个Model的对象集合成一个单独的字典? 我的意思是,像这样: class DictModel(models.Model): key = models.CharField(20) value = models.CharField(200) DictModel.objects.all().to_dict() …结果是一个由模型中的logging组成的键/值对的字典? 有没有人认为这对他们有用? 谢谢。 更新 我只是想补充说的是,我的最终目标是能够在模板中做一个简单的variables查找。 就像是: {{ DictModel.exampleKey }} 由于DictModel.objects.get(key__exact = exampleKey).value的结果 总的来说,尽pipe如此,你们真的让我感到惊讶,因为你们的回答是多么有帮助,以及接近它的方式有多不同。 非常感谢。 更新2011年10月:这个问题是最好的结果,如果你谷歌“django model_to_dict”,这实际上是非常糟糕的,因为它解决了一个不同于我问的问题。 我想要的是能够将查询集中的所有实例映射到指定模型字段作为关键字的单个字典中。 另一方面,model_to_dict将单个模型实例转换为字典。 现在,我当时的需求相当具体,可能非常罕见(我甚至不记得我需要的项目,或者为什么)。 所以我会很惊讶,任何正在寻找关于model_to_dict的信息的人都会发现我的问题实际上是有用的。 抱歉。 model_to_dict似乎是比我更常见的用例。 2011年12月更新: 我改变了标题,希望更好地反映我的原意。

Django的DateField默认选项

我有一个模型,它有一个date时间字段: date = models.DateField(_(“Date”),default = datetime.now()) 当我检查内置的Djangopipe理中的应用程序,DateField也有时间追加到它,所以,如果你试图保存它会返回一个错误。 我如何使默认的date? (datetime.today()不工作)

Django:我应该如何储存货币价值?

我遇到了一个范式问题。 我不知道是否应该将钱存储为Decimal(),或者如果我应该将其存储为string并将其自动转换为小数。 我的推理是这样的: PayPal需要2位小数 ,所以如果我有一个产品甚至是49美元,PayPal希望看到49.00电线。 Django的DecimalField()不设置十进制数。 它只存储最大小数位数量。 所以,如果你有49个字段,并且字段设置为2个小数位,它仍然会将其存储为49.我知道,Django基本上是从数据库反序列化为Decimal时的types转换(因为数据库没有十进制字段),所以我并不是完全关心速度问题,就像我在处理这个问题的devise问题一样。 我想做可扩展性最好的。 或者,更好的是,有没有人知道如何configuration一个Django的DecimalField()来始终使用TWO_PLACES格式样式进行格式化。