我有模型学生的空查询集
students = Students.objects.all()
Run Code Online (Sandbox Code Playgroud)
如果上面的查询集为空,那我怎样才能获得模型(类名)?
如何获取空查询集的模型名称?
编辑:
如何从查询集中获取应用程序名称?
我正在使用基于类的通用视图,任何人都可以建议我如何设置初始值以更新表单?
我尝试使用get_initial()方法,但没有取得任何成功.以下是我试过的代码
class IncidentUpdateView(UpdateView):
form_class = IncidentForm
form_class.initial = {"badge_number": '88888'}
model = Incident
template_name = 'hse/incident/incident_update.html'
def get_initial(self, form_class):
initials = {
"badge_number": '88888'
}
form = form_class(initial=initials)
return form
def get_success_url(self):
return reverse_lazy('hse-incident', args=[self.object.id])
Run Code Online (Sandbox Code Playgroud) python django django-forms django-views django-class-based-views
我正在用Reportlab platypus创建PDF表格.我不知道,因为动态内容页面已满.如果我在页面的末尾,我该如何查看?
鸭嘴兽有没有方法检查页面末尾?
我有公司名单,每家公司都有多个业务部门负责.
companies = [('company1', 'businessunit1', 500),
('company1', 'businessunit2',400),
('company2', 'businessunit3',200),
('company2', 'businessunit4', 700),
('company3', 'businessunit5', 800)
]
Run Code Online (Sandbox Code Playgroud)
上面的列表应该为一个公司生成3个表,但是如果这个列表有多个公司将生成多个表,并且如果任何表到达页面末尾将会中断.
fields = ['company name', 'business unit name', 'charge']
for i, comp in enumerate(companies):
charges = []
document.append(Paragraph("<b>%s</b>" %comp[i][0], STYLES['COMPANY_NAME']))
document.append(Spacer(1, 5))
charges.append(comp[i][0])
charges.append(comp[i][1])
charges.append(comp[i][2])
charges_table = LongTable([fields] + charges, colWidths=(30,150,100))
charges_table.setStyle(TableStyle([
('BACKGROUND', (0, 0), (-1, 0), colors.gray),
('FONTSIZE', (0, 0), (-1, 0), 6),
('GRID', (0, 0), (-1, -1), 1, colors.gray),
('FONTSIZE', (0, 0), (-1, -1), 7),
('TEXTCOLOR',(0,-1),(-1,-1),'#FF4500'),
])
) …Run Code Online (Sandbox Code Playgroud) 我有表单字段{{form.item}},它将呈现给
<input type="text" name="item" >
Run Code Online (Sandbox Code Playgroud)
如何使用自定义模板标记更改表单字段的名称属性?
我尝试将表单发送到模板标签
form.fields['item'].widget.attrs['name'] = 'new_name'
Run Code Online (Sandbox Code Playgroud)
但我没有成功.
我需要在模板中更改name属性.
UPDATE
models.py
class A(models.Model):
name = models.CharField(50)
type = models.CharField(50)
class B(models.Model):
field1 = ForeignKeyField(A)
value = IntegerField()
Run Code Online (Sandbox Code Playgroud)
views.py
def saving_calculation(request):
SavingFormset = modelformset_factory(A, extra=2)
OfferInlineFormSet = inlineformset_factory(
A, B,
extra = 4
)
if request.method == 'POST':
pass
else:
offer_formset = OfferInlineFormSet()
saving_formset = SavingFormset(queryset=SavingCalculation.objects.none())
return render_to_response(
'purchasing/saving_calculation.html',
{
'offer_formset':offer_formset,
'saving_formset':saving_formset,
}
Run Code Online (Sandbox Code Playgroud)
模板
<form action="." method="POST">
{{ offer_formset.management_form }}
{{ saving_formset.management_form }}
{{ saving_formset.prefix }} …Run Code Online (Sandbox Code Playgroud) 我正在使用modelformset工厂从模型字段生成formset.在这里,我想只将queryset对象作为readonly和其他(额外的形式)作为非readonly字段
我怎样才能实现这一目标?
AuthotFormSet = modelformset_factory(Author, extra=2,)
formset = AuthorFormSet(queryset=Author.objects.all())
Run Code Online (Sandbox Code Playgroud)
在上面的formset中,我希望将所有queryset对象显示为readonly,并将剩余的额外形式显示为非readonly字段.我怎么能做到这一点?
如果我使用,
for form in formset.forms:
form.fields['weight'].widget.attrs['readonly'] = True
Run Code Online (Sandbox Code Playgroud)
这会将所有表单(包括额外的)字段转换为readonly,我不想要.而且我还使用jquery插件将表单动态添加到formset
A = 200
B = -140
C = 400
D = -260
if A < 0:
v1 = 0
else:
v1 = A
if B < 0:
v2 = 0
else:
v2 = B
if C < 0:
v3 = 0
else:
v3 = C
if D < 0:
v4 = 0
else:
v4 = C
Run Code Online (Sandbox Code Playgroud)
上述代码结构的简写实现是什么?有没有更好/优雅/方便的方法来做到这一点?
L1 = ['A', 'B', 'C', 'D']
L2 = [('A', 10)], ('B', 20)]
Run Code Online (Sandbox Code Playgroud)
现在从这两个列表中我如何生成公共元素
output_list = [('A', 10), ('B', 20), ('C', ''), ('D', '')]
Run Code Online (Sandbox Code Playgroud)
如何使用L1和L2获得output_list?
我尝试了以下内容
for i in L2:
for j in L1:
if i[0] == j:
ouput_list.append(i)
else:
output_list.append((j, ''))
Run Code Online (Sandbox Code Playgroud)
但我没有得到我想要的确切内容
def analysis_report(request):
response = HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'attachment;filename=ANALYSIS_REPORT.pdf'
buffer = StringIO()
doc = SimpleDocTemplate(buffer)
doc.sample_no = 12345
document = []
doc.build(document, onLaterPages=header_footer)
def header_footer(canvas, doc):
canvas.saveState()
canvas.setFont("Times-Bold", 11)
canvas.setFillColor(gray)
canvas.setStrokeColor('#5B80B2')
canvas.drawCentredString(310, 800, 'HEADER ONE GOES HERE')
canvas.drawString(440, 780, 'Sample No: %s' %doc.sample_no)
canvas.setFont('Times-Roman', 5)
canvas.drawString(565, 4, "Page %d" % doc.page)
Run Code Online (Sandbox Code Playgroud)
我上面的代码我可以打包显示页码,但我的问题是如何显示"Y页面X",其中Y是页数,X是当前页.
我按照这个http://code.activestate.com/recipes/546511-page-x-of-y-with-reportlab/,但他们解释了使用canvasmaker,因为我在构建中使用了OnlaterPages参数.
如何使用canvasmaker实现上述功能,或者使用OnLaterPages是否有任何解决方案?
我有一个名为 StudentAppeared 的模型
class StudentAppeared(models.Model):
roll_number = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
假设我有以下数据

从上面的数据结果应该显示

我如何使用 django 查询StudentAppeared模型来实现这一目标?
我正在创建由表单组成的模态窗口.出于某种原因,我第一次提交表单时,它的工作原理.但是,当我第二次提交表单(没有页面重新加载)时,它会提交表单两次.当我第三次提交时,我会收到三份提交 - 依此类推.
这是代码
$(function() {
levels = ['Expert',
'1',
'Advanced',
'2',
'Intermediate',
'3',
'Basic',
'4',
'Entry',
'5'
]
// load the modal window
$('a.modal').click(function(){
var req_name=this.id;
// scroll to top
$('html, body').animate({scrollTop:0}, 'fast');
var selectField = document.getElementById("category");
if(req_name=='task')
{
selectField.style.display = "none";
}
else{
selectField.options.length = 0;
for (i=0; i<levels.length; i=i+2)
{
selectField.options[selectField.options.length] = new Option(levels[i],levels[i+1]);
}
}
$.ajaxSetup ({
cache: false
});
// before showing the modal window, reset the form incase of previous use.
$('.success, .error').hide();
$('form#contactForm').show(); …Run Code Online (Sandbox Code Playgroud) 我有 django 模板,我在其中检查 TRUE 或 FALSE 变量。现在在 Jquery 中的特定事件上,我想将此 django 变量值修改为 TRUE 或 FALSE。
在views.py中
var = True
Run Code Online (Sandbox Code Playgroud)
在模板中
{% if var %}
do something
{% endif %}
Run Code Online (Sandbox Code Playgroud)
HTML代码
<form>
<label for="target">Enter Key:</label>
<input id="target" type="text" />
{% if var %}
dispaly other stuff
{% endif %}
</form>
Run Code Online (Sandbox Code Playgroud)
查询
<script>
$('#target').keydown(function(event) {
if ($(this).val() == '00000 )
{
jvar = {{var}}
}
});
Run Code Online (Sandbox Code Playgroud)
我想在特定事件上更改 Jquery 中“var”的值
我怎样才能做到这一点?
提前致谢
在django管理页面的list_filter中使用外部字段
假设我有模特
class Company():
name varchar(50)
field1 varchar(50)
class Client()
name varchar(50)
company ForeignKey(Company)
Run Code Online (Sandbox Code Playgroud)
现在我如何在django管理页面中为field1实现客户端模型的过滤器
我尝试了list_filter = ['company_ field1','company _name']但是没有用.有解决方案吗
我正在使用django 1.2版本.
提前致谢
python ×11
django ×9
django-views ×4
django-forms ×3
jquery ×2
reportlab ×2
django-admin ×1
javascript ×1
jquery-ui ×1