小编Asi*_*sif的帖子

获取django中空查询集的类名

我有模型学生的空查询集

students = Students.objects.all()
Run Code Online (Sandbox Code Playgroud)

如果上面的查询集为空,那我怎样才能获得模型(类名)?

如何获取空查询集的模型名称?

编辑:

如何从查询集中获取应用程序名称?

python django django-models django-views

30
推荐指数
2
解决办法
8988
查看次数

在基于类的通用视图中将初始值设置为modelform

我正在使用基于类的通用视图,任何人都可以建议我如何设置初始值以更新表单?

我尝试使用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

25
推荐指数
1
解决办法
1万
查看次数

reportlab中的条件分页符

我正在用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)

python django reportlab

8
推荐指数
1
解决办法
6846
查看次数

使用更改django模板中表单域的名称属性

我有表单字段{{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)

python django django-templates django-forms django-views

8
推荐指数
3
解决办法
2万
查看次数

django formset中的只读字段

我正在使用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

python django django-forms

6
推荐指数
1
解决办法
5292
查看次数

检查python中的多个变量是否大于零

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)

上述代码结构的简写实现是什么?有没有更好/优雅/方便的方法来做到这一点?

python

4
推荐指数
1
解决办法
4243
查看次数

Python元组列表

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)

但我没有得到我想要的确切内容

python

3
推荐指数
1
解决办法
150
查看次数

如何使用reportlab在PDF中添加总页数

   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是否有任何解决方案?

python django reportlab

3
推荐指数
1
解决办法
4923
查看次数

排除django查询集中的重复对象

我有一个名为 StudentAppeared 的模型

class StudentAppeared(models.Model):
    roll_number = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)

假设我有以下数据

在此处输入图片说明

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

在此处输入图片说明

我如何使用 django 查询StudentAppeared模型来实现这一目标?

python django django-models django-views

3
推荐指数
1
解决办法
2814
查看次数

Jquery多次提交表单

我正在创建由表单组成的模态窗口.出于某种原因,我第一次提交表单时,它的工作原理.但是,当我第二次提交表单(没有页面重新加载)时,它会提交表单两次.当我第三次提交时,我会收到三份提交 - 依此类推.

这是代码

  $(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)

javascript jquery jquery-ui

2
推荐指数
1
解决办法
1469
查看次数

修改jquery代码中的django模板变量

我有 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”的值

我怎样才能做到这一点?

提前致谢

python django jquery django-templates

1
推荐指数
1
解决办法
4658
查看次数

外键字段的django管理页面中的list_filter

在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 django django-models django-admin

0
推荐指数
1
解决办法
2393
查看次数