我已经定义了一个User(最终)继承自的类models.Model.我想获得为此模型定义的所有字段的列表.例如,phone_number = CharField(max_length=20).基本上,我想要检索从Field类继承的任何东西.
我以为我可以通过利用来检索这些inspect.getmembers(model),但它返回的列表不包含任何这些字段.看起来Django已经掌握了这个类,并添加了所有的魔法属性,并删除了实际定义的内容.那么......我怎样才能获得这些领域?它们可能具有为自己的内部目的检索它们的功能吗?
我试图获取模型中的字段的类信息,当我只知道字段的名称和模型的名称(两个普通字符串).这怎么可能?
我可以动态加载模型:
from django.db import models
model = models.get_model('myapp','mymodel')
Run Code Online (Sandbox Code Playgroud)
现在我有场 - 'myfield' - 我怎么能得到那个领域的班级?
如果该字段是关系型的 - 如何获取相关字段?
谢谢你!
我可以通过其他方式获取对象字段的值obj.field吗?有类似obj.get('field')存在吗?设置字段值的方法相同.
快问.我正在尝试使用变量访问模型的一个字段.
class ExampleModel(models.Model):
the_field = models.CharField()
the_field_two = models.CharField()
Run Code Online (Sandbox Code Playgroud)
如何动态访问该字段?我试过了:
model = ExampleModel.objects.get(pk=1)
fieldtoget = 'the_field'
test_var = model[fieldtoget]
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用,任何想法我会怎么做?
更新:我想我会更新我的问题.我正在尝试编写一个函数(作为更大函数的一部分),它不仅可以获取字段的值,还可以从变量fieldname更新它.例如:
model[fieldtoget] = 'yo'
model.save()
Run Code Online (Sandbox Code Playgroud)
在PHP中你可以使用{}包装器 - $model{$fieldtoget}作为一个例子,对于动态变量名称希望在python中有类似的东西:)
干杯
如何将django QuerySet转换为numpy记录数组?
PS:我知道你可以迭代并构建它,但还有其他更清洁的解决方案吗?
我是django和Python的新手,希望能够导出我的模型中的项目列表,即产品.我正在看这里的文档 - https://docs.djangoproject.com/en/dev/howto/outputting-csv/
我需要创建一个存储我想要的所有数据的变量.但不确定它在上面链接的代码片段中的位置.
道歉,因为这是一个非常无聊的问题,但真的会有任何帮助.
这是我的脚本到目前为止的代码:
import csv
from products.models import Product
from django.http import HttpResponse
def export_to_csv(request):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="mytest.csv"'
Run Code Online (Sandbox Code Playgroud) 我有一个模型,当然,带有ImageField和FileField so I\xe2\x80\x99d like to create a folder each time the user create a course. I think I can do this before the model is saved so here is my question.
如何访问方法中的 model\xe2\x80\x99s 字段?
\n模型.py
\nClass Course(models.Model):\n Thumbnail = model.ImageField(upload_to=\xe2\x80\x9c...\xe2\x80\x9d,...)\n\n def save(self, *args, **kwargd):\n ... #How can I alter here the ImageField parameters?\n super().save(*args, **kwargs)\nRun Code Online (Sandbox Code Playgroud)\n 可能的重复:
Django 获取模型的字段
我有下一个模型:
class People(models.Model):
name = models.CharField(max_length=100)
lastname = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
我想遍历 People 表中的所有项目。
在views.py中
- 当我尝试这个时:
for each in People().objects.all():
name=each.name
Run Code Online (Sandbox Code Playgroud)
我收到那个错误:
Manager isn't accessible via People instances
Run Code Online (Sandbox Code Playgroud)
- 当我尝试这个时:
for each in People():
name=each.name
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
'People' object is not iterable
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题以及如何遍历 People 表中的所有项目?