django - 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})
解决方案
您必须在 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})
推荐阅读
- c++ - 在 C++20 中,在一个范围内计算相邻对的最简洁明了的方法是什么?
- javascript - 如何包装发射器.on(eventName)?
- android - 如何使用 C# SDK 为 Google Assistant 创建一个简单的“播放歌曲”意图
- php - 使用电子邮件地址从 MySQL 数据库中获取行的键值
- python - 为什么非常大的斐波那契数会创建椭圆形?
- asp.net-core - 我的 asp.net 核心控制器方法有什么问题?
- javascript - 使用角度,一旦做出选择,您将如何使用输出传递 ID,然后在页脚中使用输入调用它
- zfit - 注册解析积分时访问 PDF 变量
- telegram - Telegram 机器人可以在频道上创建调查吗?
- scala - 无论如何在Scala中实现可选的命令行参数?