如何检入模板用户是否属于某个组?
有可能在view生成template但是如果我想检查这base.html是一个扩展模板(它没有它自己的视图功能)怎么办?
我的所有模板都扩展了,base.html所以在每个模板中检查它都不好view.
在base.html包含上部杆,它应包含在其中的按钮根据group登录用户是(客户,销售商).
在我的base.html是:
{% if user.is_authenticated %}
Run Code Online (Sandbox Code Playgroud)
这是不够的,因为我必须采取不同的方式对用户Customers和用户采取不同的行动Sellers.
所以我想要的是:
{% if user.in_group('Customers') %}
<p>Customer</p>
{% endif %}
{% if user.in_group('Sellers') %}
<p>Seller</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud) 对不起,如果您在我之前提出此问题时尝试过帮助我.不得不删除该问题,因为出于某种原因我不被允许编辑其他信息.
我正在我的django网站上实现用户身份验证.一切正常.我的观点,模型,网址等都已设置完毕.用户可以注册,登录,注销.我遇到的问题是这段代码:
{% if request.user.is_authenticated %}
<li><a href="/logout">Log Out</a></li>
{% else %}
<li><a href="/login">Log In</a></li>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
即使我已登录,它仍然显示"登录"作为选项而不是"注销".但是,如果我点击链接,它会将我重定向到/ profile,因为如果我已经登录,那就是视图告诉它要做的事情.所以,显然它知道我已登录,但模板不是readint user.is_authenticated为true.
与登录请求相关的视图是:
def LoginRequest(request):
if request.user.is_authenticated():
return HttpResponseRedirect('/profile/')
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
profile = authenticate(username=username, password=password)
if profile is not None:
login(request, profile)
return HttpResponseRedirect('/profile/')
else:
return render_to_response('template/login.html', {'form': form}, context_instance=RequestContext(request))
else:
return render_to_response('template/login.html', {'form': form}, context_instance=RequestContext(request))
else:
''' user is not submitting the form, show them login form …Run Code Online (Sandbox Code Playgroud) 我正在做以下事情:
model._meta.get_field('g').get_internal_type
Run Code Online (Sandbox Code Playgroud)
返回以下内容:
<bound method URLField.get_internal_type of <django.db.models.fields.URLField: g>>
Run Code Online (Sandbox Code Playgroud)
我只想知道这个字段是"URLField".如何从此输出中提取?
注意:我这样做是为了我可以对字段进行验证.例如,如果是网址,我想检查它是否格式正确.
我最近从升级Ubuntu 18.04到19.04了python 3.7。但是我在许多项目上使用Python 3.6。
现在,当我尝试在PyCharm中创建virtualenvwith Python 36时,它引发了:
ModuleNotFoundError: No module named 'distutils.core'
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么办。
我尝试安装distutils:
milano@milano-PC:~$ sudo apt-get install python3-distutils
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-distutils is already the newest version (3.7.3-1ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Run Code Online (Sandbox Code Playgroud)
但是如您所见,我拥有最新版本。
你知道该怎么办吗?
随着项目的发展,依存关系和事件链也会不断增长,尤其是在覆盖的save()方法post_save和pre_save信号中。
例:
覆盖将A.save创建两个相关的对象A- B和C。当C被保存时,post_save信号被调用,做别的事情,等...
如何弄清楚这些事件的下巴?有没有办法可视化(自动生成)这样的链/流?我既没有寻找,ERD也没有任何Class图表。我需要确保在一个地方做一件事情不会影响项目另一侧的事情,所以简单的可视化将是最好的。
编辑
明确地说,我知道检查动态生成的信号几乎是不可能的。我只想检查所有(不是动态生成的)post_save,pre_save和重写的save方法并将其可视化,这样我就可以立即看到正在发生的事情以及何时发生的save事情。
我是Django的新手.我已经通过插入模型创建了一个表models.py.
现在,我想在数据库中插入一行 - 表Dodavatel.我知道,我必须创建一个属性为列的对象.但我不知道我应该把这段代码放在哪里.在models.py?
这是我的模特:
class Dodavatel(models.Model):
nazov = models.CharField(default='', max_length=255)
dostupnost = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)
这是插入行的代码:
p = Dodavatel(nazov='Petr', dostupnost=1)
p.save()
Run Code Online (Sandbox Code Playgroud)
我应该把这段代码放在哪里?
我正在尝试制作一个不会注册域名的脚本.我在使用Python 2.7.我已经读过该模块whois应该能够做到这一点,但我写的代码会引发错误.
import whois
domains = ['http://www.example.com']
for dom in domains:
domain = whois.Domain(dom)
print domain.registrar
Run Code Online (Sandbox Code Playgroud)
这是错误:
domain = whois.Domain(dom)
File "C:\Python27\lib\site-packages\whois\_3_adjust.py", line 12, in __init__
self.name = data['domain_name'][0].strip().lower()
TypeError: string indices must be integers, not str
Run Code Online (Sandbox Code Playgroud)
你知道什么可能是错的吗?或者你能给我一个更好的解决方案吗?
编辑:我尝试了pythonwhois模块,但它也返回错误.
编辑2:根据这里的一个解决方案,在SO上,我试图使用pywhois,这个代码也引发了错误.
import pywhois
w = pywhois.whois('google.com')
w.expiration_date
Run Code Online (Sandbox Code Playgroud)
错误:
w = pywhois.whois('google.com')
AttributeError: 'module' object has no attribute 'whois'
Run Code Online (Sandbox Code Playgroud) 是否有一个命令,例如break和continue可能重复最近的迭代?
例如,抛出异常时.
for i in range(0,500):
try:
conn = getConnection(url+str(i))
doSomething(conn)
except:
repeat
Run Code Online (Sandbox Code Playgroud)
让我们有一个i变量值的迭代6.在此迭代期间,发生了一些连接错误.我想重复这个迭代.
有没有可以做到的命令?
我当然可以这样做:
i=0
while i!=500:
try:
conn = getConnection(url+str(i))
doSomething(conn)
i+=1
except:
pass
Run Code Online (Sandbox Code Playgroud) 我试图使用py2exe创建一个exe文件.我最近更新了Python从2.7.7到2.7.10以便能够使用requests- proxies.
在更新之前一切正常但现在,最近创建的exe文件,引发了这个错误:
Traceback (most recent call last):
File "puoka_2.py", line 1, in <module>
import mLib
File "mLib.pyc", line 4, in <module>
File "urllib2.pyc", line 94, in <module
File "httplib.pyc", line 71, in <module
File "socket.pyc", line 68, in <module>
ImportError: cannot import name RAND_egd
Run Code Online (Sandbox Code Playgroud)
它可能可以通过更改optionssetup.py文件来修复,但我无法弄清楚我必须在那里写什么.我试过options = {'py2exe': {'packages': ['requests','urllib2']}})但没有成功.
它作为Python脚本运行,但不作为exe.
有谁知道该怎么办?
编辑:
我试图setup.py将此导入文件归档:from _ssl import RAND_egd
它表示无法导入.
EDIT2:Setup.py:
from distutils.core import setup
import py2exe
# from _ssl import RAND_egd …Run Code Online (Sandbox Code Playgroud) 在使用Dropzonejs上传文件后,我无法弄清楚如何获取JSONresponse.
我有这个:
<script src="{% static "dropzone/dropzone.js" %}"></script>
<form id="id_dropzone" class="dropzone" action="/ajax_file_upload_handler/"
enctype="multipart/form-data" method="post"></form>
Run Code Online (Sandbox Code Playgroud)
我认为没有手动初始化dropzone是不可能的,所以我将其更改为:
$("#id_dropzone").dropzone({
maxFiles: 2000,
url: "/ajax_file_upload_handler/",
success: function (file, response) {
console.log(response);
}
});
<form id="id_dropzone" class="" action=""
enctype="multipart/form-data" method="post"></form>
Run Code Online (Sandbox Code Playgroud)
哪个回归 Uncaught Error: No URL provided.
如何初始化dropzone以便我可以添加maxFiles,maxSize等选项并获取JSON响应?
python ×8
django ×5
ajax ×1
architecture ×1
django-admin ×1
dns ×1
dropzone.js ×1
exception ×1
executable ×1
html ×1
import ×1
insert ×1
iteration ×1
javascript ×1
jquery ×1
loops ×1
mysql ×1
py2exe ×1
pycharm ×1
python-3.6 ×1
ssl ×1
virtualenv ×1