Questions tagged «django-models»

对于有关使用Web框架Django中的模型类的问题。



12
将Django模型对象转换为所有字段均完整的dict
如何将Django模型对象转换为具有所有字段的字典?理想情况下,所有内容都包含带有的外键和字段editable=False。 让我详细说明。假设我有一个类似以下的Django模型: from django.db import models class OtherModel(models.Model): pass class SomeModel(models.Model): normal_value = models.IntegerField() readonly_value = models.IntegerField(editable=False) auto_now_add = models.DateTimeField(auto_now_add=True) foreign_key = models.ForeignKey(OtherModel, related_name="ref1") many_to_many = models.ManyToManyField(OtherModel, related_name="ref2") 在终端中,我已执行以下操作: other_model = OtherModel() other_model.save() instance = SomeModel() instance.normal_value = 1 instance.readonly_value = 2 instance.foreign_key = other_model instance.save() instance.many_to_many.add(other_model) instance.save() 我想将其转换为以下字典: {'auto_now_add': …


3
Django:显示选择值
models.py: class Person(models.Model): name = models.CharField(max_length=200) CATEGORY_CHOICES = ( ('M', 'Male'), ('F', 'Female'), ) gender = models.CharField(max_length=200, choices=CATEGORY_CHOICES) to_be_listed = models.BooleanField(default=True) description = models.CharField(max_length=20000, blank=True) views.py: def index(request): latest_person_list2 = Person.objects.filter(to_be_listed=True) return object_list(request, template_name='polls/schol.html', queryset=latest_person_list, paginate_by=5) 在模板上,当我调用时person.gender,我得到'M'or 'F'而不是'Male'or 'Female'。 如何显示值('Male'或'Female')而不是代码('M'/ 'F')?

6
Django设置默认表单值
我有一个模型如下: class TankJournal(models.Model): user = models.ForeignKey(User) tank = models.ForeignKey(TankProfile) ts = models.IntegerField(max_length=15) title = models.CharField(max_length=50) body = models.TextField() 我也有上述模型的模型形式,如下所示: class JournalForm(ModelForm): tank = forms.IntegerField(widget=forms.HiddenInput()) class Meta: model = TankJournal exclude = ('user','ts') 我想知道如何为该坦克隐藏字段设置默认值。这是我到目前为止显示/保存表格的功能: def addJournal(request, id=0): if not request.user.is_authenticated(): return HttpResponseRedirect('/') # checking if they own the tank from django.contrib.auth.models …

9
如何在Django中创建子弹?
我正在尝试SlugField在Django中创建一个。 我创建了这个简单的模型: from django.db import models class Test(models.Model): q = models.CharField(max_length=30) s = models.SlugField() 然后,我这样做: >>> from mysite.books.models import Test >>> t=Test(q="aa a a a", s="b b b b") >>> t.s 'b b b b' >>> t.save() >>> t.s 'b b b b' 我在期待b-b-b-b。


16
以编程方式将图像保存到Django ImageField
好的,我已经尝试了几乎所有内容,但无法正常工作。 我有一个上面带有ImageField的Django模型 我有通过HTTP下载图像的代码(已测试并且可以工作) 图像直接保存到“ upload_to”文件夹中(upload_to是在ImageField上设置的文件夹) 我需要做的就是将已经存在的图像文件路径与ImageField相关联 我已经用6种不同的方式编写了这段代码。 我遇到的问题是我正在编写的所有代码均导致以下行为:(1)Django将创建第二个文件,(2)重命名新文件,在文件末尾添加_名称,然后(3)不会在保留基本为空的重命名文件的情况下传输任何数据。在“ upload_to”路径中剩下的是2个文件,一个是实际图像,一个是图像名称,但为空,当然ImageField路径设置为Django尝试创建的空文件。 。 如果不清楚,我将尝试说明: ## Image generation code runs.... /Upload generated_image.jpg 4kb ## Attempt to set the ImageField path... /Upload generated_image.jpg 4kb generated_image_.jpg 0kb ImageField.Path = /Upload/generated_image_.jpg 如何在不让Django尝试重新存储文件的情况下执行此操作?我真正想要的就是这种效果…… model.ImageField.path = generated_image_path ...但是那当然是行不通的。 是的,我已经经历这里的其他问题,如走了这一个,以及对Django的DOC 文件 更新 在进一步测试之后,仅当在Windows Server上的Apache下运行时,它才会执行此行为。在XP上的“ runserver”下运行时,它不会执行此行为。 我很沮丧 这是在XP上成功运行的代码... f = open(thumb_path, …


12
Django:获取模型字段列表?
我定义了一个User(最终)继承自的类models.Model。我想获取为此模型定义的所有字段的列表。例如,phone_number = CharField(max_length=20)。基本上,我想检索从Field该类继承的任何内容。 我以为我可以利用来检索这些inspect.getmembers(model),但它返回的列表不包含任何这些字段。看起来Django已经掌握了该类,并添加了其所有魔术属性并去除了实际定义的内容。那么...我如何获得这些领域?它们可能具有为自己的内部目的检索它们的功能?

9
从Django的queryset获取第一个对象的最快方法?
我经常发现自己想要从Django的查询集中获取第一个对象,或者None如果没有则返回。有很多方法可以完成所有这些工作。但是我想知道哪个是表现最好的。 qs = MyModel.objects.filter(blah = blah) if qs.count() > 0: return qs[0] else: return None 这会导致两个数据库调用吗?这似乎很浪费。这更快吗? qs = MyModel.objects.filter(blah = blah) if len(qs) > 0: return qs[0] else: return None 另一种选择是: qs = MyModel.objects.filter(blah = blah) try: return qs[0] except IndexError: return None 这样会生成一个数据库调用,这很好。但是需要很多时间创建一个异常对象,当您真正需要的只是一个琐碎的if-test时,这是一项非常占用内存的工作。 我该如何仅用一个数据库调用就可以做到这一点,而又不浪费带有异常对象的内存?

15
如何使用Django的ORM提取随机记录?
我有一个模型,代表我在网站上展示的绘画。在主要网页上,我想展示其中的一些:最新的,大多数时间未访问的网页,最受欢迎的网页和随机的网页。 我正在使用Django 1.0.2。 尽管使用django模型可以轻松提取其中的前3个,但最后一个(随机)会给我带来一些麻烦。在我看来,我可以将代码进行如下编码: number_of_records = models.Painting.objects.count() random_index = int(random.random()*number_of_records)+1 random_paint = models.Painting.get(pk = random_index) 在我看来,这看起来并不像我想要的东西-这完全是数据库抽象的一部分,应该包含在模型中。另外,在这里,我需要处理已删除的记录(然后所有记录的数量将无法覆盖所有可能的键值)以及可能还有很多其他事情。 我还有其他方法可以做,最好是在模型抽象内进行?

6
Django:为什么某些模型字段会相互冲突?
我想创建一个包含2个指向用户的链接的对象。例如: class GameClaim(models.Model): target = models.ForeignKey(User) claimer = models.ForeignKey(User) isAccepted = models.BooleanField() 但是运行服务器时出现以下错误: 字段“目标”的访问器与相关字段“ User.gameclaim_set”冲突。在'target'的定义中添加related_name参数。 字段“ claimer”的访问器与相关字段“ User.gameclaim_set”冲突。在“ claimer”的定义中添加一个related_name参数。 您能否解释为什么我会收到错误以及如何解决这些错误?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.