有一些想法使用Django:我想使用管理员为我的网站创建内容。但是,当我谈论内容时,我指的是:
到目前为止,我已经能够做到这一切。没有什么比这更难的,一些模型,条件和方法,你正在努力工作。
困扰我的是我想在文章模型中创建一个QueryField。最后一个用于可自定义的内容列表。
一个简单的例子是一个模态,显示到目前为止发布的所有文章的列表。所以我创建了一个Link,我的模态就出现了。但是我如何从我的管理员那里告诉我,我希望它列出来自自定义查询集的所有对象,它也是在管理员中创建的。
简短:如何创建models.QueryField()?
文章模型非常简单..:
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
published = models.BooleanField(default=False)
date = models.DateField()
lined = models.BooleanField(default=False)
def __str__(self):
return self.title
def __repr__(self):
return self.title
答案 0 :(得分:1)
使用Custom Model Fields的有效构思:
from django.db import models
import os
class QueryExecutor(object):
def __init__(self, value):
self.qValue = value
def __str__(self):
return self.qValue
def __repr__(self):
return self.qValue
class QueryField(models.Field):
description = "This is a custom field for storing query"
__metaclass__ = models.SubfieldBase
def db_type(self, connection):
return 'CharField'
def to_python(self, value):
if isinstance(value, QueryExecutor):
return value
return QueryExecutor(value)
#def get_db_prep_save(self, value, connection):
# return "" + value + ""
class PageDetail(models.Model):
PAGE_TITLE = (
('HOME','HOME'),
('CONT','CONTACT US'),
('ABOU','ABOUT US'),
)
Name = models.CharField(max_length=4, choices=PAGE_TITLE, default='HOME')
CustomQuery = QueryField()
Details = models.TextField()
def __unicode__(self):
return self.Name
您可以在这里找到Django中已有的类似自定义字段:
这是我在模型中可以获得的,它创建了一个自定义字段。它在管理员中添加了一个字段,我可以看到字段查询选择。
它没有完全正常工作,因为我没有时间来完成它。如果没有帮助你,我会删除答案。
也就是说,我有一种感觉,如果您将QueryField称为Article.objects.all()