csv不映射到django模型 [英] csv not mapping into django model
问题描述
我有一个应该运行但没有运行的代码。我做了大量的研究,它变得很沮丧,但它似乎只需要一双新鲜的眼睛。
我使用了 csv importer 并调整它一点。
代码应该上传csv,并读取列到django字段!中提琴!不难。
在models.py中我有:
I have a code that should run but isn't running. I have done massive amount of research and It's getting frustrating but it seems I just need a fresh pair of eyes.
I have used csv importer and tweaked it a bit.
The code should upload csv, and read the columns into django fields! Viola! Not hard.
In models.py I have:
from adaptor.model import CsvModel
from application.models import Analysis
class CSV(CsvModel):
csv_file = models.FileField(upload_to=upload_to)
political_environment = DecimalField()
GDP_per_capita = DecimalField()
economic_diversification= DecimalField()
inflation= DecimalField()
monetary_credibility= DecimalField()
access_to_finance= DecimalField()
#This is my major issues as An error keeps popping up saying
#"Analysis model isn't defined" for dbModel despite defining it at the start
class Meta:
dbModel = Analysis
delimiter = ","
class Analysis
class Meta:
ordering = ['country']
verbose_name = _('Analysis')
political_environment = DecimalField()
GDP_per_capita = DecimalField()
economic_diversification= DecimalField()
inflation= DecimalField()
monetary_credibility= DecimalField()
access_to_finance= DecimalField()
在forms.py中我有:
from credit.models import CSV
In forms.py I have: from credit.models import CSV
class CSVForm(forms.ModelForm):
class Meta:
model = CSV
key_to_field_map = getattr(settings, 'CSVIMPORTER_KEY_TO_FIELD_MAP', lambda k: k.replace(' ','_').lower())
观看次数
from credit.models import CSV
from credit.forms import CSVForm,
def new(request):
if request.method == 'POST':
form = CSVForm(request.POST, request.FILES)
if form.is_valid():
instance = form.save()
request.user.message_set.create(message='Uploaded CSV. Please associate fields below.')
return HttpResponseRedirect(reverse('associate-csv',args=[instance.id]))
else:
form = CSVForm()
return render_to_response('new.html',
{'form':form}, context_instance=RequestContext(request))
html
{% block content %}
<div id="content-main">
<h2>Upload CSV</h2>
<form action="." method="post" accept-charset="utf-8" enctype="multipart/form-data">
<table>
{{form.as_table}}
</table>
<input type="submit" class="submit" />
</form>
</div>
<div class="accordion-body collapse{% if form.errors %} in{% endif %}" id="Data">
<div class="accordion-inner row-fluid" label for="id_Data">
<div class="span5">
{% control form.political_environment %}
{% control form.GDP_per_capita %}
{% control form.economic_diversification %}
{% control form.inflation %}
{% control form.monetary_credibility %}
{% control form.access_to_finance %}
</div>
</div>
</div>
admin.py
class AnalysisAdmin(admin.ModelAdmin):
class Media:
change_form_template = 'application/upload_csv.html'
add_form_template = 'application/upload_csv.html'
我做错了什么或不正确?这是简单的,但它变得沮丧。任何帮助都会做。
PS:我是新的django
谢谢!
What am I doing wrong or not doing right? This is meant to be simple but its getting frustration. Any help will do. P.S: I'm new to django Thanks!
推荐答案
> models.py 先定义分析
,然后定义 CSV
:
in your models.py
first define Analysis
and then define CSV
like this:
from django.db import models
from adaptor.model import CsvModel
from application.models import Analysis
class Analysis(models.Model)
class Meta:
ordering = ['country']
verbose_name = _('Analysis')
political_environment = DecimalField()
GDP_per_capita = DecimalField()
economic_diversification= DecimalField()
inflation= DecimalField()
monetary_credibility= DecimalField()
access_to_finance= DecimalField()
class CSV(CsvModel):
csv_file = models.FileField(upload_to=upload_to)
political_environment = DecimalField()
GDP_per_capita = DecimalField()
economic_diversification= DecimalField()
inflation= DecimalField()
monetary_credibility= DecimalField()
access_to_finance= DecimalField()
#This is my major issues as An error keeps popping up saying
#"Analysis model isn't defined" for dbModel despite defining it at the start
class Meta:
dbModel = Analysis
delimiter = ","
这篇关于csv不映射到django模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!