基于Django文档,我应该能够一次传递多个对象以添加到一个多人关系但我得到一个
* TypeError:不可用类型:'list'
当我尝试传递一个列表中的django查询集.传递Queryset或ValuesListQueryset似乎也失败了.有没有比使用for循环更好的方法?
尝试使用非常简单的表单将文件上载到新的类实例中.我希望有两个文件,request.FILES但它是空的.我在捆绑的开发服务器上.
被困在这里并经历了所有相关问题.
wayfinder_map.media_file = request.FILES['media_file']
Run Code Online (Sandbox Code Playgroud)
生成
MultiValueDictKeyError:"在MultiValueDict中找不到键'media_file':{}>"
模型
class WayfinderMap(models.Model):
""" Way-finding Map Config"""
media_file = models.FileField(upload_to="maps", null=True, blank=True)
wall_file = models.FileField(upload_to="maps_data", null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
视图
@login_required
def create_map(request, form_class=WayfinderMapForm, template_name="wayfinder/map/create.html"):
wayfinder_map_form = form_class(request.user, request.POST or None, request.FILES)
if wayfinder_map_form.is_valid():
wayfinder_map = wayfinder_map_form.save(commit=False)
wayfinder_map.media_file = request.FILES['media_file']
wayfinder_map.data_file = request.FILES['data_file']
wayfinder_map.creator = request.user
wayfinder_map.save()
return HttpResponseRedirect(wayfinder_map.get_absolute_url())
return render_to_response(template_name, {
"wayfinder_map_form": wayfinder_map_form,
}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
模板
<form enctype="multipart/form-data" class="uniForm" id="wayfinder_map_form" method="POST" action="">
<fieldset class="inlineLabels">
{{ wayfinder_map_form|as_uni_form }}
<div class="form_block">
<input type="hidden" name="action" …Run Code Online (Sandbox Code Playgroud) 我想访问一个我的模型字段verbose_name.
我可以通过像这样的现场指示得到它
model._meta._fields()[2].verbose_name
Run Code Online (Sandbox Code Playgroud)
但我需要动态地得到它.理想情况下,它会是这样的
model._meta._fields()['location_x'].verbose_name
Run Code Online (Sandbox Code Playgroud)
我看了几件事,但我找不到它.
我们需要一个内容分类模块.贝叶斯分类器似乎是我正在寻找的.我们应该选择Orange还是NLTK?
我已经阅读了所有其他线程,但我仍然不知道为什么我的应用程序没有出现在Django管理员中.其他一切都很好.
我的应用是在settings.py中
我在root urls.py文件中有admin.autodiscover
from django.conf.urls.defaults import *
from django.conf import settings
from django.views.generic.simple import direct_to_template
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', direct_to_template, {
"template": "homepage.html",
}, name="home"),
url(r'^admin/invite_user/$', 'signup_codes.views.admin_invite_user', name="admin_invite_user"),
url(r'^account/signup/$', "signup_codes.views.signup", name="acct_signup"),
(r'^account/', include('account.urls')),
(r'^profiles/', include('basic_profiles.urls')),
(r'^notices/', include('notification.urls')),
(r'^announcements/', include('announcements.urls')),
(r'^tagging_utils/', include('tagging_utils.urls')),
(r'^attachments/', include('attachments.urls')),
(r'^comments/', include('threadedcomments.urls')),
#
(r'^wayfinder/', include('wayfinder.urls')),
(r'^site/', include('jsite.urls')),
(r'^kiosk/', include('kiosk.urls')),
(r'^navigator/', include('navigator.urls')),
(r'^location/', include('location.urls')),
(r'^event/', include('event.urls')),
#(r'^news_reader/', include('news_reader.urls')),
#(r'^weather_reader/', include('weather_reader.urls')),
(r'^admin/(.*)', admin.site.root),
)
if settings.SERVE_MEDIA:
urlpatterns += patterns('',
(r'^site_media/', include('staticfiles.urls')),
)
Run Code Online (Sandbox Code Playgroud)
我的所有应用都有一个包含类似内容的admin.py文件 …
从具有ManyToMany关系的站点实例到Kiosk,我想检查Kiosk对象是否是关系的一部分.
我可以
self.apps.get(id=app_id).exists() and check if True
Run Code Online (Sandbox Code Playgroud)
要么
self.apps.get(id=app_id) and catch the ObjectDoesNotExist error
Run Code Online (Sandbox Code Playgroud)
要么
self.apps.filter(id=app_id) and check if True
Run Code Online (Sandbox Code Playgroud)
你可以告诉我使用任何有用的东西,这将是一个有效的答案;-)
我将我的一个模型转储到一个灯具时使用--natural选项,这样在部署时我不会遇到Content_typ ID问题.结果在这里:
{
"pk": 1,
"model": "seo.opportunitymetadatamodel",
"fields": {
"_content_type": [
"opportunity",
"jobopportunity"
],
"og_description": "",
"description": "",
"title": "test",
"keywords": "",
"og_title": "",
"heading": ""
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试加载夹具时,我收到以下错误:
Problem installing fixture 'seo/fixtures/initial_data.json': Traceback (most recent call last):
File "/Users/xx/dev/envs/xx/lib/python2.6/site-packages/django/core/management/commands/loaddata.py", line 167, in handle
for obj in objects:
File "/Users/xx/dev/envs/xx/lib/python2.6/site-packages/django/core/serializers/json.py", line 38, in Deserializer
for obj in PythonDeserializer(simplejson.load(stream), **options):
File "/Users/xx/dev/envs/xx/lib/python2.6/site-packages/django/core/serializers/python.py", line 84, in Deserializer
Model = _get_model(d["model"])
TypeError: string indices must be integers, not str
Run Code Online (Sandbox Code Playgroud)
好像该方法不接受要加载的字符串.我错过了什么?
我想调用带有字段名称过滤器的查询,在运行时我不知道...不确定如何构造变量名称......或者我可能已经累了.
field_name = funct()
locations = Locations.objects.filter(field_name__lte=arg1)
Run Code Online (Sandbox Code Playgroud)
如果funct()返回name将等于
locations = Locations.objects.filter(name__lte=arg1)
Run Code Online (Sandbox Code Playgroud)
不知道该怎么做......
我正在构建一个表单(不是modelForm),我想使用SelectMultiple Widget根据在表单初始化期间完成的查询来显示选项.
我可以想到一些方法来做到这一点,但我并不清楚正确的做法.我看到了不同的选择.
我得到了"选择",我应该在表单init中传递给窗口小部件,但我不确定我应该如何传递它们.
class NavigatorExportForm(forms.Form):
def __init__(self,user, app_id, *args,**kwargs):
super (NavigatorExportForm,self ).__init__(*args,**kwargs) # populates the form
language_choices = Navigator.admin_objects.get(id=app_id).languages.all().values_list('language', flat=True)
languages = forms.CharField(max_length=2, widget=forms.SelectMultiple(choices=???language_choices))
Run Code Online (Sandbox Code Playgroud) django ×9
python ×4
orm ×2
django-admin ×1
django-forms ×1
field ×1
fixtures ×1
forms ×1
get ×1
list ×1
naivebayes ×1
nltk ×1
orange ×1
pinax ×1
widget ×1