[英]how to display specific results from the dropdown in models.py in django
[英]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.