繁体   English   中英

如何直接在 django 中的 models.py 文件上进行查询,将结果填充到文件中?

[英]How to make queries directly on the models.py file in django, to fill the fileds with the results?

嗨,我想知道我是否能够直接使用“models.py”文件中的查询来使结果成为某些字段的默认值。 例如:

class NewModel(models.Model): Seats = models.IntegerField(default=<some_result_of_a_query>)...

谢谢: :)

对于一个项目,我设法做到这一点:

在 model.py 中:

class SQLQueryCache(models.Model):
    SQLquery=models.TextField(blank=True,null=True,unique=True)
    data_refresh_period_in_minuts=models.IntegerField(blank=True,null=True)



class SQLQueryCacheForm (ModelForm):
    def __init__(self, SQLPK,*args, **kwargs):
        super(SQLQueryCacheForm, self).__init__(*args, **kwargs)
        dict_value=SQLQueryCache.objects.filter(pk=SQLPK).values('SQLquery','data_refresh_period_in_minuts')
        for value in dict_value:
            self.fields['SQLquery']=forms.CharField(required=False,initial=value['SQLquery'],widget=forms.Textarea(attrs={'rows': 10, 'cols': 90,'style': 'font-size: 10px'}))
            self.fields['data_refresh_period_in_minuts']=forms.CharField(required=False,initial=value['data_refresh_period_in_minuts'],widget=forms.TextInput(attrs={'type': 'number','style':'width:150px; height:30px'}))

    class Meta:
        model = SQLQueryCache
        fields = ['SQLquery','data_refresh_period_in_minuts']

在 view.py 中:

from .models import SQLQueryCache,SQLQueryCacheForm

def NewDashboardBuilder (request):
    formset['SQL']= SQLQueryCacheForm(SQLPK=componentInstance.SQLquery_FK.pk)
    return render(request, "formTest/Formset.html", {'formset': formset})

在 formset.html 中:

  <!-- SQL part -->
  {% if formset.SQL %}
    <div class="row even">
      <div class='col-'style="padding:5px">
        {{ formset.SQL.as_p }}
      </div>
    </div>

您可以在 model 上定义一个方法,该方法返回您想要的值并将字段的默认值指向该方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM