我在试图找出"DoesNotExist错误"时遇到问题,我试图找到管理无应答结果的正确方法,但是我继续遇到"DoesNotExist"或"对象没有属性DoestNotExists"的问题
from django.http import HttpResponse
from django.contrib.sites.models import Site
from django.utils import simplejson
from vehicles.models import *
from gpstracking.models import *
def request_statuses(request):
data = []
vehicles = Vehicle.objects.filter()
Vehicle.vehicledevice_
for vehicle in vehicles:
try:
vehicledevice = vehicle.vehicledevice_set.get(is_joined__exact = True)
imei = vehicledevice.device.imei
try:
lastposition = vehicledevice.device.devicetrack_set.latest('date_time_process')
altitude = lastposition.altitude
latitude = lastposition.latitude
longitude = lastposition.longitude
date_time_process = lastposition.date_time_process.strftime("%Y-%m-%d %H:%M:%S"),
date_time_created = lastposition.created.strftime("%Y-%m-%d %H:%M:%S")
except Vehicle.vehicledevice.device.DoesNotExist:
lastposition = None
altitude = None
latitude = None
longitude = None
date_time_process = …Run Code Online (Sandbox Code Playgroud) 在Django文档只列出了重写的例子save()和delete().但是,我想为我的模型创建一些额外的处理.对于熟悉Rails的人来说,这相当于创建一个:before_create过滤器.这可能吗?
我正试图在另一个中获取模型对象实例.我提出这个错误:
Manager isn't accessible via topic instance
Run Code Online (Sandbox Code Playgroud)
这是我的模特:
class forum(models.Model):
# Some attributs
class topic(models.Model):
# Some attributs
class post(models.Model):
# Some attributs
def delete(self):
forum = self.topic.forum
super(post, self).delete()
forum.topic_count = topic.objects.filter(forum = forum).count()
Run Code Online (Sandbox Code Playgroud)
这是我的观点:
def test(request, post_id):
post = topic.objects.get(id = int(topic_id))
post.delete()
Run Code Online (Sandbox Code Playgroud)
我得到:
post.delete()
forum.topic_count = topic.objects.filter(forum = forum).count()
Manager isn't accessible via topic instances
Run Code Online (Sandbox Code Playgroud) 在Django请求中,我有以下内容
POST:<QueryDict: {u'section': [u'39'], u'MAINS': [u'137']}>
Run Code Online (Sandbox Code Playgroud)
如何获得的价值section和MAINS?
if request.method == 'GET':
qd = request.GET
elif request.method == 'POST':
qd = request.POST
section_id = qd.__getitem__('section') or getlist....
Run Code Online (Sandbox Code Playgroud) 在Django中,我可以这样做:
test = Test.objects.get(id=1)
test.name
Run Code Online (Sandbox Code Playgroud)
我希望能够使用动态生成的字符串访问属性,如下所示:
test['name']
Run Code Online (Sandbox Code Playgroud)
或者,使用字符串的任何其他语法.我试过了
test._meta.get_field_by_name('name')
Run Code Online (Sandbox Code Playgroud)
但这会返回字段本身而不是值.
有任何想法吗?
我正在Django写一个简单的房地产列表应用程序.每个属性需要具有可变数量的图像.图像需要具有可编辑的顺序.我需要让管理员用户证明.
那说,我的选择是什么?
是否有我不知道的ImageList字段?
有这样的应用程序django.contrib.comments对我有用吗?
如果我必须自己编写,我将如何使管理员方面体面?我想象的东西比ImageField提供的东西要漂亮得多,还有一些重新排序的拖延.但是我在编写管理页面时非常熟悉=(
我正在尝试为__init__我的一个模型编写一个函数,以便我可以通过执行来创建一个对象
p = User('name','email')
Run Code Online (Sandbox Code Playgroud)
当我写模型时,我有
def __init__(self, name, email, house_id, password):
models.Model.__init__(self)
self.name = name
self.email = email
Run Code Online (Sandbox Code Playgroud)
这是有效的,我可以将对象保存到数据库中,但是当我执行'User.objects.all()'时,除非取出我的User.objects.all()功能,否则它不会提取任何内容.有任何想法吗?
我已经定义了一个模型并通过它创建了它的相关数据库manager.py syncdb.现在我已经为模型添加了一些字段,我syncdb再次尝试,但没有输出.在尝试从我的模板中访问这些新字段时,我得到一个"No Such Column"异常,这让我相信syncdb实际上没有更新数据库.这里的命令是什么?
我试图通过多对多关系过滤一堆对象.因为trigger_roles字段可能包含多个条目,所以我尝试了包含过滤器.但是因为它被设计为与字符串一起使用,我几乎无能为力地过滤这种关系(你可以忽略values_list()atm.).
此功能附加到用户配置文件:
def getVisiblePackages(self):
visiblePackages = {}
for product in self.products.all():
moduleDict = {}
for module in product.module_set.all():
pkgList = []
involvedStatus = module.workflow_set.filter(trigger_roles__contains=self.role.id,allowed=True).values_list('current_state', flat=True)
Run Code Online (Sandbox Code Playgroud)
我的工作流模型看起来像这样(简化):
class Workflow(models.Model):
module = models.ForeignKey(Module)
current_state = models.ForeignKey(Status)
next_state = models.ForeignKey(Status)
allowed = models.BooleanField(default=False)
involved_roles = models.ManyToManyField(Role, blank=True, null=True)
trigger_roles = models.ManyToManyField(Role, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
虽然解决方案可能很简单,但我的大脑不会告诉我.
谢谢你的帮助.
所以我有我的TagStatus模型.我正在尝试为它制作一个ModelForm.但是,我的表单要求使用{{tag.name}}填充隐藏的输入.我一直在查看文档,我不知道如何使标记字段成为隐藏的输入.也许ModelForm不是要走的路?
models.py:
class TagStatus(models.Model):
user = models.ForeignKey(User, null=True, unique=True)
status = models.CharField(max_length=2, choices=tag_statuses)
tag = models.ForeignKey(Tag, null=True, blank=True)
def __unicode__(self):
return self.status
def save(self, *args, **kwargs):
super(TagStatus, self).save(*args, **kwargs)
class TagStatusForm(modelForm):
class Meta:
model = TagStatus
fields = ('status','tag')
widgets = {
'select': Select,
'tag': ???
}
Run Code Online (Sandbox Code Playgroud)
django views.py:
@login_required
def tags(request):
all_tags = Tag.objects.all()
context = base_context(request)
if request.method == 'POST':
if 'status_check' in request.POST:
status_form = TagStatusForm(request.POST)
#if request.is_ajax():
if status_form.is_valid():
status_form.save()
response = simplejson.dumps({"status": "Successfully changed status"}) …Run Code Online (Sandbox Code Playgroud) django ×10
django-models ×10
python ×6
django-forms ×2
django-views ×2
django-orm ×1
instances ×1
many-to-many ×1