在Django中,是否不可能从urls.py导入多个视图?
例如,我在urls.py中有以下代码:
from mysite.books import views
from mysite.contact import views
urlpatterns = patterns('',
(r'^contact/$', views.contact),
(r'^search/$', views.search),
)
Run Code Online (Sandbox Code Playgroud)
但是,除非我禁用其中一对,否则服务器会显示错误.所以我的问题有三个:
1)是否不可能有多个导入视图语句?2)如何解决这个问题?3)什么是放置所有views.py的最佳做法?一个文件?多个文件?等等
谢谢.
要将一些内容添加到模型的 Django 管理视图中,我想覆盖change_form.html模板。根据文档,我需要change_form.html在文件夹中创建一个文件/project-path/templates/admin/appname/modelname/。当然,我需要确保该路径在TEMPLATE_DIRS. 这样的文件可能如下所示:
{% extends "admin/change_form.html" %}
{% load i18n %}
{% block after_field_sets %}
SOME CONTENT
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
但是,我使用django-guardian来获得对象权限。这个 Django 应用程序也覆盖change_form.html(它工作正常——相关源似乎在这里),但 Django 没有选择我的模板扩展文件(即上面示例中的“一些内容”没有显示)。该块/件我要重写是不相同的那些Django的监护人覆盖,最终我想有增加的change_form.htmlDjango的guardion的和我的模板。
我在这里做错了什么?是否有可能让多个应用程序覆盖管理模板?
如果感兴趣,这是我的TEMPLATE_LOADERS设置:
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader'
)
Run Code Online (Sandbox Code Playgroud)
此外,django-guardian 是INSTALLED_APPS数组中的最后一个应用程序。
我想在django中保存一个formset.为此,我有我的模型和自定义表单.然后我这样创建我的formset:
QuoteFormSet = formset_factory(QuoteForm, extra=2)
formset = QuoteFormset(request.POST)
Run Code Online (Sandbox Code Playgroud)
但是当我做formset.save()时,我得到了 AttributeError: 'QuoteFormFormSet' object has no attribute 'save'
我的模特:
class Quote(models.Model):
country = models.CharField(max_length=2,)
street = models.CharField(max_length=100,)
Run Code Online (Sandbox Code Playgroud)
我的表格:
class QuoteForm(forms.ModelForm):
class Meta:
model = Quote
country = forms.ChoiceField(choices=COUNTRIES, required=False)
street = forms.CharField(max_length=100, required=False)
Run Code Online (Sandbox Code Playgroud) 我正在使用django 1.5,我正在尝试做这样的事情:
quotes = formset.save()
user = client_form.save()
for quote in quotes:
quote.client = user
quotes.save()
Run Code Online (Sandbox Code Playgroud)
但是列表没有save()方法,所以有一些内置的功能可以做类似的事情吗?
我发现这个关于在Django中批量保存对象的问题
django 1.5仍然是真的吗?有没有办法避免对列表的每个对象进行save()调用?
这是我的实际视图代码:
def new_quote(request):
QuoteLineFormSet = modelformset_factory(QuoteLine, form=QuoteLineForm, extra=2)
if request.method == 'POST':
formset = QuoteLineFormSet(request.POST, request.FILES, queryset=QuoteLine.objects.none())
quote_form = QuoteForm(request.POST, request.FILES)
if formset.is_valid() and quote_form.is_valid():
quote_lines = formset.save(commit=False)
#quote_lines = formset.get_queryset()
quote = quote_form.save()
for quote_line in quote_lines:
quote_line.quote = quote
quote_line.save()
request.session['quote_id'] = quote.id
return HttpResponseRedirect(reverse('new_client'))
else:
formset = QuoteLineFormSet(queryset=QuoteLine.objects.none())
quote_form = QuoteForm()
return render(request, 'request_quote_form.html', {
'formset': …Run Code Online (Sandbox Code Playgroud) 是否有(良好)方法来跟踪HTML元素的所有更改?
我尝试使用javascript与jQuery但它不起作用.
$('div.formSubmitButton input[type="submit"]').change(function(event){
alert(event);
});
Run Code Online (Sandbox Code Playgroud)
不知何故,在提交按钮上设置了一个样式属性,但我无法找到它的位置和方式.
如何在 django 中编写测试?我阅读了文档:https://docs.djangoproject.com/en/dev/topics/testing/overview/
但是我们使用 django-cms 和 sekizai 所以当我做一个简单的测试时,例如:
from django.test import TestCase
from django.test.client import Client
class AccessTest(TestCase):
def setUp(self):
# Every test needs a client.
self.client = Client()
def test_details(self):
# Issue a GET request.
response = self.client.get('/')
# Check that the response is 200 OK.
self.assertEqual(response.status_code, 200)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Traceback (most recent call last): File "/home/maazza/PycharmProjects/django_my_app/search_engine/tests.py", line 18, in test_details
response = self.client.get('/') File "/home/maazza/.virtualenvs/django_my_app/local/lib/python2.7/site-packages/django/test/client.py", line 439, in get
response = super(Client, self).get(path, data=data, **extra) File "/home/maazza/.virtualenvs/django_my_app/local/lib/python2.7/site-packages/django/test/client.py", line …Run Code Online (Sandbox Code Playgroud) 我在django项目中有sqlite数据库,一切正常.
但是看到django dbshell不适用于sqlite我发现pycharm有一个数据库连接器/管理器,但我找不到我可以输入sql命令或查看架构的位置.
谢谢
我有一个数字选择器,用于以 MB 为单位设置数据限制。现在,我有 numberPicker,包含按顺序排列的数值,如 [1,2,3,....., 2000 MB]。
但我想要一个 numberPicker,它应该包含像 [100,200,300,...., 2000MB] 这样的数值。我怎样才能做到这一点?
我使用了很多os.system调用来在for循环中创建后台进程.我如何等待所有后台进程结束?
os.wait 告诉我没有孩子的过程.
ps:我正在使用Solaris
这是我的代码:
#!/usr/bin/python
import subprocess
import os
pids = []
NB_PROC=30
for i in xrange(NB_PROC):
p = subprocess.Popen("(time wget http://site.com/test.php 2>&1 | grep real )&", shell=True)
pids.insert(0,p)
p = subprocess.Popen("(time wget http://site.com/test.php 2>&1 | grep real )&", shell=True)
pids.insert(0,p)
for i in xrange(NB_PROC*2):
pids[i].wait()
os.system("rm test.php*")
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用参数在Google App Engine中运行cron作业,但无法在cron.yaml中发送任何参数.任何人都知道如何在cron.yaml中发送参数?
handlers:
- url: /testing
script: testing.php
Run Code Online (Sandbox Code Playgroud)
我想发送的是testing.php?testing = 12345,但是如果我这样写的话,脚本将不会运行.
我看了这个:
如何在Google App Engine上将参数传递给python cron任务?
..但我不太理解它,因为它适用于Python.
谢谢!
django ×5
python ×5
android ×1
css ×1
django-1.5 ×1
django-admin ×1
django-cms ×1
django-orm ×1
django-views ×1
formsets ×1
html ×1
javascript ×1
jquery ×1
os.system ×1
php ×1
pycharm ×1
shell ×1
sqlite ×1
unit-testing ×1