小编nlr*_*r25的帖子

TypeError:'int'对象不支持索引

我有这个问题:

some_id = 1

cursor.execute('
    SELECT "Indicator"."indicator" 
    FROM "Indicator" 
    WHERE "Indicator"."some_id" =   %s;', some_id)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

TypeError: 'int' object does not support indexing
Run Code Online (Sandbox Code Playgroud)

some_id是一个int,但是我想选择some_id = 1的指标(或者我决定放入变量的#).

python sql postgresql

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

使用get_object_or_404获取数据库值

我正在get_object_or_404尝试从我的数据库中获取值列表.我正在尝试过滤get_object_or_404状态变量的函数,只捕获与之关联的值disease_id.下面的代码不起作用(它抓取状态表中的所有值.任何想法?

views.py

def option(request, disease_id, state_id):

    state = get_object_or_404(State, relevantdisease=disease_id)
    disease = get_object_or_404(Disease, pk=disease_id)

    context = {'state': state, 'disease':disease }
    return render(request, "option.html", context)
Run Code Online (Sandbox Code Playgroud)

models.py

class State(models.Model):
    state = models.CharField(max_length=300, verbose_name='state')
    relevantdisease = models.ForeignKey(Disease, verbose_name="disease")
Run Code Online (Sandbox Code Playgroud)

django

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

以自定义形式呈现模板中的各个字段

我在模板中渲染单个字段时遇到问题.我有一个自定义表单,呈现多重小部件和Charfield.我想单独渲染小部件和Charfield,所以我可以将Charfield放在小部件的右边而不是底部(这是Django默认做的).有没有办法在模板中调用表单中的各个字段?

forms.py

class UpdateStateOptionWithOutcomesForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
       disease=kwargs.pop('disease', None)
       super(UpdateStateOptionWithOutcomesForm, self).__init__(*args, **kwargs)
       self.fields['relevantoutcome']=forms.ModelMultipleChoiceField(queryset=Outcome.objects.filter(relevantdisease_id=disease),required=True, widget=forms.CheckboxSelectMultiple)
       self.fields['relevantoutcome'].label="Treatment Outcomes"

       outcome_qs=Outcome.objects.filter(relevantdisease_id=disease)
       for outcome in outcome_qs:
       self.fields['outcomevalue_%s' % outcome.pk] = forms.CharField(required=False)
       self.fields['outcomevalue_%s' % outcome.pk].label = "Outcome Value"
Run Code Online (Sandbox Code Playgroud)

django django-templates django-forms

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

当使用外键链接保存modelForms时,Django的ManagementForm数据丢失或被篡改

我对Django很新,所以这可能是一个简单的问题.我有2个modelForms,其中有一个ForeignKey到另一个.我的主要目标是保存指标与疾病(FK)的链接,这样对于特定疾病,您可以有多个指标.

使用下面的代码,当我点击"管理框架数据丢失或被篡改"提交时,我收到错误.另外,views.py中的代码似乎没有在返回HttpResponseRedirect的第3个'if'语句中进行验证.但是,当我检查我的数据库时,表单中的值已被写入.有关错误原因的任何想法?以及如何解决它?

我的代码如下:

models.py

#Table for Disease
class Disease(models.Model):
    disease = models.CharField(max_length=300)

#Tables for Indicators
class Indicator(models.Model):
    relevantdisease = models.ForeignKey(Disease)       
    indicator = models.CharField(max_length=300)
Run Code Online (Sandbox Code Playgroud)

forms.py

class DiseaseForm(forms.ModelForm):
    class Meta:
      model = Disease

class IndicatorForm(forms.ModelForm):
    class Meta:
      model = Indicator

DiseaseFormSet = inlineformset_factory(Disease, 
    Indicator,
    can_delete=False,
    form=DiseaseForm)
Run Code Online (Sandbox Code Playgroud)

views.py

def drui(request):

    if request.method == "POST":

       indicatorForm  = IndicatorForm(request.POST)

       if indicatorForm.is_valid():
          new_indicator = indicatorForm.save()
          diseaseInlineFormSet = DiseaseFormSet(request.POST, request.FILES,   instance=new_indicator)

          if diseaseInlineFormSet.is_valid():
             diseaseInlineFormset.save()
             return HttpResponseRedirect('some_url.html')

    else:
       indicatorForm = IndicatorForm()
       diseaseInlineFormSet = DiseaseFormSet()

    return render_to_response("drui.html", {'indicatorForm': indicatorForm, …
Run Code Online (Sandbox Code Playgroud)

html forms django formsets

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

无效的块标记.您是否忘记注册或加载此标记?

获取无效的块标记消息Invalid block tag on line 2: 'out'. Did you forget to register or load this tag?但不知道原因.这是我的设置:

graphs.html

{% out %}
Run Code Online (Sandbox Code Playgroud)

views.py

out = 'something to say'
template = loader.get_template('viz_proj/graphs.html')
context = {
    'out' : out
} 
return HttpResponse(template.render(context, request))
Run Code Online (Sandbox Code Playgroud)

settings.py

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'viz_proj'
]
Run Code Online (Sandbox Code Playgroud)

项目heirarchy

viz_proj
|
viz_proj----------------------------------------templates
    |                                              |
    settings.py--views.py--urls.py               graphs.html
Run Code Online (Sandbox Code Playgroud)

html python django

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

从列表中创建字符串的有效方法

我有一些非常低效的代码,我想更通用/更高效.我试图从一组列表中创建字符串.

这是我目前拥有的:

#contains categories
numind = [('Length',), ('Fungus',)] 

#contains values that pertain to the categories
records = [('Length', 'Long'), ('Length', 'Med'), ('Fungus', 'Yes'), ('Fungus', 'No')] 

#contains every combination of values between the 2 categories. 
#for example, (Long, Yes) = Length=Long & Fungus = Yes.
combinations = [('Long', 'Yes'), ('Long', 'No'), ('Med', 'Yes'), ('Med', 'No')] 
Run Code Online (Sandbox Code Playgroud)

现在我想创建在我的组合列表中包含每个组合的字符串.这是效率低下的部分.我喜欢它,所以我不必硬连接"numind"列表的长度.有任何想法吗?

values = combinations
valuestring = []

if len(numind) == 0:
   pass
elif len(numind) == 1:
   for a in xrange(len(values)):
      valuestring.append(numind[0][0]+values[a][0]) 

elif len(numind) == 2:
   for …
Run Code Online (Sandbox Code Playgroud)

python string list

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

从字符串中获取ID

我有一个字符串,我想抓住"id"号码12079500908.我正在尝试使用ast.literal_eval但收到了一个ValueError: malformed string.有没有其他方法可以id从下面的字符串中获取数字?

doc_request = urllib2.Request("https://api.box.com/2.0/search?query=SEARCHTERMS", headers=doc_headers)
doc_response = urllib2.urlopen(doc_request)
view_doc_response = doc_response.read()
doc_dict=ast.literal_eval(view_doc_response)
Run Code Online (Sandbox Code Playgroud)

编辑 输出:

view_doc_response = '{"total_count":1,"entries":[{"type":"file","id":"12079500908","sequence_id":"1","etag":"1","sha1":"6887169228cab0cfb341059194bc980e1be8ad90","name":"file.pdf","description":"","size":897838,"path_collection":{"total_count":2,"entries":[{"type":"folder","id":"0","sequence_id":null,"etag":null,"name":"All Files"},{"type":"folder","id":"1352745576","sequence_id":"0","etag":"0","name":"Patient Files"}]},"created_at":"2013-12-03T10:23:30-08:00","modified_at":"2013-12-03T11:17:52-08:00","trashed_at":null,"purged_at":null,"content_created_at":"2013-12-03T10:23:30-08:00","content_modified_at":"2013-12-03T11:17:52-08:00","created_by":{"type":"user","id":"20672372","name":"name","login":"email"},"modified_by":{"type":"user","id":"206732372","name":"name","login":"email"},"owned_by":{"type":"user","id":"206737772","name":"name","login":"email"},"shared_link":{"url":"https:\\/\\/www.box.net\\/s\\/ymfslf1phfqiw65bunjg","download_url":"https:\\/\\/www.box.net\\/shared\\/static\\/ymfslf1phfqiw65bunjg.pdf","vanity_url":null,"is_password_enabled":false,"unshared_at":null,"download_count":0,"preview_count":0,"access":"open","permissions":{"can_download":true,"can_preview":true}},"parent":{"type":"folder","id":"1352745576","sequence_id":"0","etag":"0","name":"Patient Files"},"item_status":"active"}],"limit":30,"offset":0}'
Run Code Online (Sandbox Code Playgroud)

打电话doc_dict给:

ValueError: malformed string
Run Code Online (Sandbox Code Playgroud)

python

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