如何从django中的模型中获取一个字段

mar*_*ark 5 python django field model

我的django应用程序中有这样的模型.我想只绘制这个模型的一个字段并将它们放在视图中.我的解决方案不起作用:

obj = Text.objects.get(subsID)
Run Code Online (Sandbox Code Playgroud)

我的模特

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
Run Code Online (Sandbox Code Playgroud)

我的看法

def get_history(request):
    subscription_id = Text.objects.filter(subsID)
    history = braintree.Subscription.find(subscription_id)
    return render(request, "sheet/history.html", {"history": history})
Run Code Online (Sandbox Code Playgroud)

itz*_*nTV 13

通常,当filter或者get,你必须把查询放在里面,比如

subscription_id = Text.objects.filter(fieldname="searchterm")
Run Code Online (Sandbox Code Playgroud)

这将返回queryset.So以查看此内容

subscription_id.values() #returns a list of objects(dicts)
Run Code Online (Sandbox Code Playgroud)

如果你只想获得 subsID

subscription_id.values("subsID")
Run Code Online (Sandbox Code Playgroud)

这也返回包含的列表

[{"subsID":"value"}, {"subsID":"value"} ....]
Run Code Online (Sandbox Code Playgroud)

如果你想获得only价值

subscription_id.values_list("subsID", flat=True)
Run Code Online (Sandbox Code Playgroud)

这将返回

["value", "value", ....]
Run Code Online (Sandbox Code Playgroud)


lap*_*ira 1

您必须将 subsID 等于您要查找的值。

subscription_id = Text.objects.filter(subsID=<your subscrition id variable>)
Run Code Online (Sandbox Code Playgroud)

注意这将返回一个列表 []

subscription_id = Text.objects.get(subsID=<your subscrition id variable>)
Run Code Online (Sandbox Code Playgroud)

这将返回一个对象