首页 > 解决方案 > DJANGO - Models.Forms - Usuarios

问题描述

我正在尝试保存和检索用户拥有的数据。我的意思是,在一个 Sqlite3 数据库中,我为所有用户存储表,但每个用户都有自己的数据存储,我怎样才能给每个用户自己的数据。

这是我的模型、观点和形式

模型.PY

    class Cuentas (models.Model):
            rubro_cta = models.ForeignKey(TipoC, on_delete=models.CASCADE, verbose_name = u'Tipo')
            sub_rubro_cta = models.ForeignKey(Sub_rubro, on_delete=models.CASCADE, verbose_name = u'Sub Rubro')
            titulo_cuenta = models.CharField(max_length=50)
            detalle_cuenta = models.CharField(max_length=60)
            importe_cuenta = models.FloatField()
            
            def save(self, *args, **kwargs):
                self.importe_cuenta = round(self.importe_cuenta, 2)
                super(Cuentas, self).save(*args, **kwargs)
            
            def __str__(self):
                return   self.detalle_cuenta

表格.PY

class CuentasForm (forms.ModelForm):
    class Meta:
        model = Cuentas
        fields = ['rubro_cta', 'sub_rubro_cta', 'detalle_cuenta', 'importe_cuenta']
        labels = {
            'rubro_cta': _('Cuenta'),
            'sub_rubro_cta': _('Tipo'),
            'detalle_cuenta': _('Detalle'),
            'importe_cuenta': _('Importe'),
        }

意见.PY

@login_required
def carga (request):
    if request.method == 'POST':
        form = CuentasForm(request.POST)
        if form.is_valid:
            form.save()
            return redirect('balance')

    else:
        form = CuentasForm()
    
    return render (request, "ProyetoWebApp/carga.html",{"form": form})

标签: djangodjango-modelsdjango-formsdjango-sessions

解决方案


您必须在 Cuentas 类中向用户添加外键字段:

class Cuentas (models.Model):
    user = models.ForeignKey(User, models.CASCADE)
    ...

在您的视图中为 GET 方法添加此代码:

info = None
if request.method == 'GET':
    info = Cuentas.objects.get(user=request.user)
return render (request, "ProyetoWebApp/carga.html",{"form": form, "info":info})
    

推荐阅读