我需要验证一个对象是否存在并返回该对象,然后根据该执行操作.在没有返回404的情况下,这样做的正确方法是什么?
try:
listing = RealEstateListing.objects.get(slug_url = slug)
except:
listing = None
if listing:
Run Code Online (Sandbox Code Playgroud) 在django中 - 是否有所有对象的默认时间戳字段?也就是说,我是否必须在我的模型中为'created on'显式声明'timestamp'字段 - 或者有没有办法自动获得它?
我想看看Django模板中的字段/变量是否为空.这个的正确语法是什么?
这就是我目前拥有的:
{% if profile.user.first_name is null %}
<p> -- </p>
{% elif %}
{{ profile.user.first_name }} {{ profile.user.last_name }}
{% endif%}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我将用什么来代替"null"?
这与此问题有关:Django根据客户端python返回json和html
我有一个django应用程序的命令行python api.当我通过api访问应用程序时它应该返回json并且使用浏览器它应该返回html.我可以使用不同的URL来访问不同的版本,但是如何使用一个模板在views.py中呈现html模板和json?
要呈现我将使用的HTML:
return render_to_response('sample/sample.html....')
Run Code Online (Sandbox Code Playgroud)
但是如果没有放入json模板,我将如何为json做同样的事情呢?(内容类型应该是application/json而不是text/html)
编辑1:
什么会决定json和html输出?
所以在我看来:
if something:
return render_to_response('html_template',.....)
else:
return HttpReponse(jsondata,mimetype='application/json')
Run Code Online (Sandbox Code Playgroud)
谢谢
在django中如何检查查询是否存在任何条目
sc=scorm.objects.filter(Header__id=qp.id)
Run Code Online (Sandbox Code Playgroud)
这就是它在php中的表现
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
Run Code Online (Sandbox Code Playgroud) 我有一个模特
class Survey(models.Model):
created_by = models.ForeignKey(User)
question = models.CharField(max_length=150)
active = models.NullBooleanField()
def __unicode__(self):
return self.question
Run Code Online (Sandbox Code Playgroud)
现在我想只更新active字段.所以我这样做:
survey = get_object_or_404(Survey, created_by=request.user, pk=question_id)
survey.active = True
survey.save(["active"])
Run Code Online (Sandbox Code Playgroud)
现在我收到一个错误IntegrityError: PRIMARY KEY must be unique.
我是否正确使用此方法进行更新?
django中是否有类似于@login_required的装饰器,它还测试用户是否是超级用户?
谢谢
在django视图等中,您可以访问request.GET ['variablename'],因此在您的视图中,您可以返回执行以下操作:
myvar = request.GET['myvar']
Run Code Online (Sandbox Code Playgroud)
实际的request.GET ['myvar']对象类型是:
<class 'django.http.QueryDict'>
Run Code Online (Sandbox Code Playgroud)
现在,如果你想为同一参数名传递多个变量,即
http://example.com/blah/?myvar=123&myvar=567
换句话说,您希望为参数myvar返回一个python 列表
基本上我想做的就是这样
for var in request.GET['myvar']:
print(var)
Run Code Online (Sandbox Code Playgroud)
但是,当您尝试这样时,您只获得在url中传递的最后一个值,即在上面的示例中,您将得到567
shell中的结果将是:
5
6
7
Run Code Online (Sandbox Code Playgroud)
但是,当你打印request.GET它似乎有一个列表,即:
<QueryDict: {u'myvar': [u'123', u'567']}>
Run Code Online (Sandbox Code Playgroud)
好的更新:它的目的是返回最后一个值,我的用例是我需要一个列表.
来自django docs:
的QueryDict.getitem(key)返回给定键的值.如果键具有多个值,则 getitem()将返回最后一个值.如果密钥不存在,则引发django.utils.datastructures.MultiValueDictKeyError.(这是Python标准KeyError的子类,因此您可以坚持捕获KeyError
QueryDict.getlist(key)以Python列表的形式返回带有请求键的数据.如果密钥不存在,则返回空列表.它保证返回某种列表.
更新:如果有人知道为什么django dev已经这样做了,请让我知道,显示一个列表似乎反直觉,它不像一个.不是pythonic!
我在试图找出"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请求中,我有以下内容
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)