小编kdu*_*ubs的帖子

Django表单集验证错误:缺少管理表单

我有一个Django表单集,希望使用bootstrap3内联显示,但是我不断收到错误消息ManagementForm data is missing or has been tampered with。我已经{{formset.management_form}}在HTML模板中添加,因此我不确定为什么会收到此错误。谁能帮我吗?

我的表格如下所示:

class MasterForm(forms.Form):
  def __init__(self,*args,**kwargs):
    initial_date_start = kwargs.pop('initial_start')
    initial_date_end = kwargs.pop('initial_end')
    sc_arg_list = kwargs.pop('sc_arg_list')
    sc_section_label = kwargs.pop('sc_section_label')
    tt_arg_list = kwargs.pop('tt_arg_list')
    tt_section_label = kwargs.pop('tt_section_label')

    super(MasterForm,self).__init__(*args,**kwargs)
    self.fields['WINDOW_START'].initial=initial_date_start
    self.fields['WINDOW_END'].initial=initial_date_end
    self.fields['sc_ID'].choices=sc_arg_list
    self.fields['sc_ID'].label=sc_section_label
    self.fields['scID'].choices=sc_arg_list
    self.fields['scID'].label=sc_section_label
    self.fields['tasktype'].choices=tt_arg_list
    self.fields['tasktype'].label=tt_section_label

  WINDOW_START = forms.CharField(required=True,label="WINDOW_START")

  WINDOW_END = forms.CharField(required=True,label="WINDOW_END")

  sc_ID = forms.MultipleChoiceField(required=True, widget=forms.CheckboxSelectMultiple)

  scID = forms.ChoiceField(required=True, widget=forms.RadioSelect)

  tasktype = forms.MultipleChoiceField(required=True, widget=forms.CheckboxSelectMultiple)
Run Code Online (Sandbox Code Playgroud)

使用它的视图如下所示:

FormSet = formset_factory(MasterForm)
keys = {'initial_start':"1/2/2015",'initial_end':"1/20/2015",'sc_arg_list':sat_list,'sc_section_label':"Please Select A Satelite",'tt_arg_list':task_type,'tt_section_label':"Please Select Task Type"}

if request.method == 'POST': …
Run Code Online (Sandbox Code Playgroud)

python django

6
推荐指数
0
解决办法
3709
查看次数

使用 Javascript 滚动到 div 底部

我使用 html 和 javascript 创建了一个窗口来显示我的网站生成的日志消息。我想将其设置为当用户打开日志窗口时它会自动滚动到日志消息的底部。我已经得到它,以便日志消息正确显示,但我无法让自动滚动工作。

我的 html/javascript 看起来像这样:

<body>
<div class="container-fluid">
  <div class="panel panel-default">
    <div class="panel-heading text-center">
      <h4 class="text-center">Log Messages</h4>
    </div>
    <div class="panel-body">
      <div class="content" id="logtext">
        <font face="courier">
          <span id="show" class='value'></span>
        </font>
      </div>
    </div>
  </div>
  <script language="javascript" type="text/javascript">
    function saveLogs(data){
      sessionStorage.setItem("logs",data.message);
    }
      $(document).ready(
        function() {
          setInterval(function() {
            Dajaxice.InterfaceApp.getLogs(saveLogs);
            var logs = sessionStorage.getItem("logs");
            document.querySelector('.content .value').innerText = logs;
            //I tried doing this and nothing happened.
            var objDiv = document.getElementById("logtext");
            objDiv.scrollTop = objDiv.scrollHeight;
          }, 1000);
        });
  </script>
</div>        
</body>
Run Code Online (Sandbox Code Playgroud)

对的调用dajaxice基本上只是抓取我拥有的日志文件的最后 n …

html javascript

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

为 Django 中的特定视图设置用户权限

我正在使用 Django 制作一个包含一堆不同页面的网站。我只有视图,我没有在我的项目中定义任何模型。我希望某些用户具有受限访问权限(他们只能看到我创建的一些视图)。我已经在 Django 管理站点中设置了一些用户,并使用 Python@login_required装饰器向我的网站添加了登录功能。

不过,我对如何为每个用户设置查看权限有点迷茫。我看过@permission_required装饰器,但它似乎只与模型有关,而不与视图有关。你如何在 Django 中设置页面查看权限?

django django-admin django-views

5
推荐指数
2
解决办法
8738
查看次数

Django:如何将参数传递给表单

我有一个使用 bootstrap3 呈现的 Django 表单。我希望能够将参数传递到我的表单中以使其更通用。我的表格看起来像:

class SpacecraftID(forms.Form):
  def __init__(self,*args,**kwargs):
    choices = kwargs.pop('choices')
    #self.choices = kwargs.pop('choices') produces same error
    super(SpacecraftID,self).__init__(*args,**kwargs)

  scID = forms.MultipleChoiceField(required=False, widget=forms.CheckboxSelectMultiple, choices=choices)
Run Code Online (Sandbox Code Playgroud)

我的观点如下:

def schedule_search(request):
 choices = (
    ('1','SAT1'),
    ('2','SAT2'),
    ('3','SAT3'),
    )

 if request.method == 'POST':
    form_ID = SpacecraftID(request.POST,choices=choices)
    if form.is_valid():
        scID = form_ID.cleaned_data['scID']

 else:
    form_ID = SpacecraftID(choices=choices)

 return render(request, 'InterfaceApp/schedule_search.html', {'form3': form_ID})
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,出现错误:

/InterfaceApp/schedule_search/ 处的 NameError,未定义名称“选择”

django django-forms

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

Python 电子邮件发送器不工作

我正在尝试编写一个使用 Python 库发送电子邮件的 Python 类smtplib。我让它可以与标准 Gmail 一起使用,但在让配置与其他帐户一起使用时遇到问题。

Emailer类配置和发送方法:

def configure(self,  serverLogin, serverPassword, fromAddr, toAddr, serverHost='mail.myserver.edu', serverPort=465):
    self.server=smtplib.SMTP(serverHost,serverPort) #set the server host/port - currently configured for gmail
    self.server.ehlo()
    self.server.starttls()
    self.server.ehlo()
    self.server.login(serverLogin, serverPassword)  #login to senders email
    self.fromAddr = fromAddr
    self.toAddr = toAddr

def send(self):
    msgText = email.MIMEText.MIMEText("\n".join(self.message))
    self.msg.attach(msgText) 
    print "Sending email to %s " % self.toAddr
    text = self.msg.as_string() #conver the message contents to string format
    self.server.sendmail(self.fromAddr, self.toAddr, text)  #send the email
Run Code Online (Sandbox Code Playgroud)

邮件测试方法:

def test(self):
    message = "Like a …
Run Code Online (Sandbox Code Playgroud)

python smtplib

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

颜色表行基于列值

我有一个html表,我想根据该行第一列中的值为行着色。如果值为“ CONFIRMED”,我想将行涂成绿色,如果值为“ UNCONFIRMED”,我想将行涂成红色。

我正在使用的JS是:

$(function(){
    $("tr").each(function(){
      var col_val = $(this).find("td:eq(1)").text();
      if (col_val == "CONFIRMED"){
        $(this).addClass('selected');  //the selected class colors the row green//
      } else {
        $(this).addClass('bad');
      }
    });
});
Run Code Online (Sandbox Code Playgroud)

CSS看起来像这样:

.selected {
background-color: green;
  color: #FFF;
}

.bad {
  background-color: red;
  color: #FFF;
}
Run Code Online (Sandbox Code Playgroud)

html表是从Django视图中的pandas数据帧生成的,并像这样传递:

<div class="table-responsive" style="margin-left: 15%; margin-right: 15%; overflow:auto;">
  {{ datatable | safe }}
</div>
Run Code Online (Sandbox Code Playgroud)

问题是它把我所有的行都染成红色。谁能告诉我我在做什么错?

javascript

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

您可以在一个视图中多次使用 Django 表单吗?

我有一个多次使用一种形式的 Django 视图。该表单只是一个布尔字段表单,应该初始化为True但用户可以决定是否取消选中这些框。

我遇到的问题是,无论用户检查什么,所有字段都评估为True。这是多次使用相同表单的问题,还是我搞砸了其他事情?

表格如下所示:

class DataTypeForm(forms.Form):
def __init__(self,*args,**kwargs):
    section_label = kwargs.pop('section_label')
    initial_value = kwargs.pop('initial_value')

    super(DataTypeForm,self).__init__(*args,**kwargs)
    self.fields['dataType'].label=mark_safe(section_label)
    self.fields['dataType'].initial=initial_value
    self.fields['dataType'].required=False

dataType = forms.BooleanField(required=False)
Run Code Online (Sandbox Code Playgroud)

这是视图:

def Manual_Request(request):

  form_dict = {}
  arg_dict = {}
  message = message = {'last_url':'Nominal_Request'}

  if request.method == 'POST':
    logger.info("Query submitted, beginning query results render for:")

    form_NOM = DataTypeForm(request.POST or None,section_label="ENG_NOM",initial_value=True)
    form_DDM = DataTypeForm(request.POST or None,section_label="SCI_DDM",initial_value=True)
    form_RAW = DataTypeForm(request.POST or None,section_label="SCI_RAW",initial_value=False)

    if form_NOM.is_valid():
        NOM = form_NOM.cleaned_data['dataType']

        arg_dict.update({'ENG_NOM':str(NOM)})
        logger.info("ENG_NOM: {val}".format(val=NOM))

    if form_DDM.is_valid():
        DDM = form_DDM.cleaned_data['dataType']

        arg_dict.update({'SCI_DDM':str(DDM)}) …
Run Code Online (Sandbox Code Playgroud)

forms django

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

用字符串绘制Python直方图

我正在尝试创建一些月度销售数据的直方图.我将数据作为有序字典提供,如下所示sales_dict = collections.OrderedDict([('Jan', 0), ('Feb', 0), ('Mar', 0), ('Apr', 0), ('May', 0), ('Jun', 0), ('Jul', 0), ('Aug', 11), ('Sept', 2), ('Oct', 2), ('Nov', 0), ('Dec', 0)])

我尝试过使用pyplot和pylab但没有成功.我希望我的直方图在x轴上有月份名称,销售数量在y轴上.我试过了:

import pylab
from random import randint

fig_num = randint(1,10000)

pylab.figure(fig_num)
pylab.hist(sales_dict.keys(),weights=data_dict.values(),bins=range(50))
pylab.show()
Run Code Online (Sandbox Code Playgroud)

import matplotlib.pyplot as plt

val, weight = zip(*[(k, v) for k,v in sales_dict.items()])
plt.hist(val,weights=weight)
plt.xlabel(x_label)
plt.ylabel(y_label)
plt.title(title)
plt.grid(True)

plt.show()
Run Code Online (Sandbox Code Playgroud)

在这两种情况下我都得到错误:"权重应该与x具有相同的形状".我不熟悉python的大多数绘图工具,但我想知道是不是因为我的字典中的键是字符串而不是数字?任何澄清将不胜感激!

python plot matplotlib

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