首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite数据库中未保存的值

SQLite数据库中未保存的值
EN

Stack Overflow用户
提问于 2022-04-24 18:24:14
回答 1查看 31关注 0票数 0

我正在尝试将数据从HTML保存到SQLite数据库。我的数据库连接到我的应用程序和项目。我可以从Django Admin,中输入,但是我输入标记中的值不会在数据库中。

Views.py

代码语言:javascript
复制
def add_record(request):
if request.method == 'POST':
    
    ref_no = request.POST.get('ref_no')
    token_no = request.POST.get('token_no')
    agent_name = request.POST.get('agent_name')
    trip_no = request.POST.get('trip_no')
    date = request.POST.get('date')
    vehicle_no = request.POST.get('vehicle_no')
    bora = request.POST.get('bora')
    katta = request.POST.get('katta')
    plastic = request.POST.get('plastic')
    farmer_name = request.POST.get('farmer_name')
    farmer_address = request.POST.get('farmer_address')
    farmer_mob = request.POST.get('farmer_mob')
    gross_weight = request.POST.get('gross_weight')
    tier_weight = request.POST.get('tier_weight')
    net_weight = request.POST.get('net_weight')
    bora_weight = request.POST.get('bora_weight')
    suddh_weight = request.POST.get('suddh_weight')
    loading = request.POST.get('loading')
    unloading = request.POST.get('unloading')
    unloading_point = request.POST.get('unloading_point')
    dharamkanta_man = request.POST.get('daramkanta_man')
    rate = request.POST.get('rate')
    bardana = request.POST.get('rate')
    gross_total = request.POST.get('gross_total')
    deduction = request.POST.get('deduction')
    kanta = request.POST.get('kanta')
    hemali = request.POST.get('hemali')
    our_vehicle_rent = request.POST.get('our_vehicle_rent')
    agent_commission = request.POST.get('agent_commission')
    other_amt = request.POST.get('other_amt')
    other_remarks = request.POST.get('other_remarks')
    advance = request.POST.get('advance')
    net_total = request.POST.get('net_total')

    var_datasave = paddy_purchase(ref_no=ref_no,
                                  token_no=token_no,
                                  agent_name=agent_name,
                                  trip_no=trip_no,
                                  date=date,
                                  vehicle_no=vehicle_no,
                                  bora=bora,
                                  katta=katta,
                                  plastic=plastic,
                                  farmer_name=farmer_name,
                                  farmer_address=farmer_address,
                                  farm_mob=farmer_mob,
                                  gross_weight=gross_weight,
                                  tier_weight=tier_weight,
                                  net_weight=net_weight,
                                  bora_weight=bora_weight,
                                  suddh_weight=suddh_weight,
                                  loading=loading,
                                  unloading=unloading,
                                  unloading_point=unloading_point,
                                  dharamkanta_man=dharamkanta_man,
                                  rate=rate,
                                  bardana=bardana,
                                  gross_total=gross_total,
                                  deduction=deduction,
                                  kanta=kanta,
                                  hemali=hemali,
                                  our_vehicle_rent=our_vehicle_rent,
                                  agent_commission=agent_commission,
                                  other_amt=other_amt,
                                  other_remarks=other_remarks,
                                  advance=advance,
                                  net_total=net_total
                                  )

    var_datasave.save()
    messages.success(request, 'Record saved successfully.')
    return redirect('index')

return render(request, 'add.html')

Models.py

代码语言:javascript
复制
class paddy_purchase(models.Model):
    ref_no = models.IntegerField(primary_key='true')
    token_no = models.CharField(max_length=20, unique='true')
    agent_name = models.CharField(max_length=20)
    trip_no = models.IntegerField()
    date = models.DateField()
    vehicle_no = models.CharField(max_length=10)
    bora = models.IntegerField()
    katta = models.IntegerField()
    plastic = models.IntegerField()
    farmer_name = models.CharField(max_length=30)
    farmer_address = models.CharField(max_length=40)
    farm_mob = models.CharField(max_length=10)
    gross_weight = models.IntegerField()
    tier_weight = models.IntegerField()
    net_weight = models.IntegerField()
    bora_weight = models.IntegerField()
    suddh_weight = models.FloatField()
    loading = models.IntegerField()
    unloading = models.IntegerField()
    unloading_point = models.CharField(max_length=20)
    dharamkanta_man = models.CharField(max_length=10)
    rate = models.IntegerField()
    bardana = models.CharField(max_length=7)
    gross_total = models.IntegerField()
    deduction = models.IntegerField()
    kanta = models.IntegerField()
    hemali = models.IntegerField()
    our_vehicle_rent = models.IntegerField()
    agent_commission = models.IntegerField()
    other_amt = models.IntegerField()
    other_remarks = models.CharField(max_length=50)
    advance = models.IntegerField()
    net_total = models.IntegerField()

# For returning data in ADMIN SITE
    def __str__(self):
        return 'paddy_purchase'

这就是我所犯的错误。 NULL约束失败: main_paddy_purchase.token_no

这是一个屏幕截图。误差图像

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-24 18:52:44

您的问题是token_norequest.POST中缺失了。您使用的是everywhere request.POST.get(key),当无法找到键时-返回None。您可能忘了添加相应的input字段,并指定了相应的名称。

我建议你看看Django表单。并使用它们验证用户的输入并将更改保存到数据库中。代码看起来也会平滑得多。

你可以保留你的models.py。只需将模型重命名为PaddyPurchase 根据python中的命名约定即可。

然后,您需要从模型创建ModelForm。,它将自动接受所有字段:

forms.py

代码语言:javascript
复制
class PaddyPurchaseForm(ModelForm):
     class Meta:
         model = PaddyPurchase
         fields = (
            "ref_no",
            "token_no",
            "agent_name",
            "trip_no",
            "date",
            "vehicle_no",
            "bora",
            "katta",
            "plastic",
            "farmer_name",
            "farmer_address",
            "farm_mob",
            "gross_weight",
            "tier_weight",
            "net_weight",
            "bora_weight",
            "suddh_weight",
            "loading",
            "unloading",
            "unloading_point",
            "dharamkanta_man",
            "rate",
            "bardana",
            "gross_total",
            "deduction",
            "kanta",
            "hemali",
            "our_vehicle_rent",
            "agent_commission",
            "other_amt",
            "other_remarks",
            "advance",
            "net_total",
        )

然后,您可以在views.py中使用该表单。

代码语言:javascript
复制
from .forms import PaddyPurchaseForm
...
def add_record(request):
   if request.method == 'POST':
      form = PaddyPurchaseForm(request.POST))

      if form.is_valid():
         messages.success(request, 'Record saved successfully.')
         return redirect('index')
   else:
      form = PaddyPurchaseForm()

   return render(request, 'add.html', {'form':form})

Django表单也可以用于呈现视图的所有必要输入,我建议您尝试它。为了做到这一点,只需将{{form}}添加到<form ...> </form>中即可。(仅当您在呈现函数中提供form时才能工作)

您可以阅读更多关于正式文件中的django表格的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71991196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档