如何从 django 的模型中获取一个字段
Posted
技术标签:
【中文标题】如何从 django 的模型中获取一个字段【英文标题】:How to get one field from model in django 【发布时间】:2015-05-31 12:15:59 【问题描述】:我的 django 应用程序中有这样一个模型。我只想绘制这个模型的一个字段并将它们放在视图中。我下面的解决方案不起作用:
obj = Text.objects.get(subsID)
我的模型
result = braintree.Subscription.create(
"payment_method_token": payment_method_token,
"plan_id": "67mm"
)
subscription_id = result.subscription.id
class Text(models.Model):
title = models.CharField(max_length=255)
text = models.TextField()
date_from = models.DateTimeField('date from', blank=True, null=True)
date_to = models.DateTimeField('date to', blank=True, null=True)
subsID = models.CharField(default=subscription_id, max_length=255)
def __unicode__(self):
return self.title
我的看法
def get_history(request):
subscription_id = Text.objects.filter(subsID)
history = braintree.Subscription.find(subscription_id)
return render(request, "sheet/history.html", "history": history)
【问题讨论】:
请展示您的完整视图。 请检查我的更新。 "Text.objects.filter(subsID)
" 什么是subsID
?
@itzmeontv 请检查我的更新 - 这是来自 Braintree 的订阅
【参考方案1】:
一般来说filter
或get
,你必须在里面放查询,比如
subscription_id = Text.objects.filter(fieldname="searchterm")
这将返回一个queryset
。所以查看这个
subscription_id.values() #returns a list of objects(dicts)
如果你只想得到subsID
subscription_id.values("subsID")
这也会返回您包含的列表
["subsID":"value", "subsID":"value" ....]
如果你想获取only
值
subscription_id.values_list("subsID", flat=True)
这会像这样返回
["value", "value", ....]
【讨论】:
【参考方案2】:您必须将 subsID 与您要查找的值相等。
subscription_id = Text.objects.filter(subsID=<your subscrition id variable>)
注意这将返回一个列表[]
subscription_id = Text.objects.get(subsID=<your subscrition id variable>)
这将返回一个对象
【讨论】:
问题是关于限制字段【参考方案3】:Link
视图中不能使用模型,需要使用ModelForm或者Form。 使用该字段后,您可以指定哪个字段处于活动状态,或者只需在 ModelForm 中设置属性,
exclude=['paramiter_name']
它已经完成了。
祝你好运。
【讨论】:
无论如何我的建议使用 ModelForm 更好管理。以上是关于如何从 django 的模型中获取一个字段的主要内容,如果未能解决你的问题,请参考以下文章
如何从用户在 django 基本模板中创建的所有帖子中获取模型字段值的总和?