python - 完成钱包过程后如何更改模型中的用户
问题描述
Django 新手,这是我的 model.py
class Customer(models.Model):
user = models.OneToOneField(User, null=True, blank=True, on_delete=models.CASCADE)
name = models.CharField(max_length=25, null=True)
phone = models.CharField(max_length=12, null=True)
class Coin_info(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
coinid = models.CharField(max_length=255, null=True)
digit = models.CharField(max_length=18, null=True)
ctp = models.FloatField(max_length=100, null=True)
transection_id = models.IntegerField(null=True, default=0)
slug = models.SlugField(max_length=250, null=True, blank=True)
date_created = models.DateField(auto_now_add=True, null=True)
class Balance(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
balance = models.IntegerField(default=0)
在view.py中,当客户登录时,我想将Coin_info的用户(所有者)更改为发送者(客户)的所有权,并更改配置的ctp的值。
def buy_c(request, ok):
ctp_val = Coin_info.objects.get(id=ok)
msg = "Enter Details"
if request.method == "POST":
try:
username = request.POST["username"]
amount = request.POST["amount"]
senderUser = User.objects.get(username=request.user.username)
receiverrUser = User.objects.get(username=username)
sender = Balance.objects.get(user=senderUser)
receiverr = Balance.objects.get(user=receiverrUser)
sender.balance = sender.balance - float(amount)
receiverr.balance = receiverr.balance + float(amount)
a = Coin_info.objects.change(user=senderUser) ##this is my silly try!
if senderUser == receiverrUser:
return Exception.with_traceback()
else:
a.save()
sender.save()
receiverr.save()
msg = "Transaction Success"
return redirect("/user")
except Exception as e:
print(e)
msg = "Transaction Failure, Please check and try again"
context = {"coin": ctp_val}
return render(request, 'coinwall.html', context)
另外,我想知道我是否可以跟踪特定coinid中更改的总用户的详细信息。这是我的粗略模板
<tr>
<th>username</th>
<th>Coin Id</th>
<th>current CTP</th>
<th>Total Transections</th>
</tr>
<tr>
<td>{{coin.user}}</td>
<td>{{coin.coinid}}</td>
<td>{{coin.ctp}}</td>
<td>{{coin.transection_id}}</td>
</tr>
</table>
{% if msg %}
<br><br>
{{msg}}
{% endif %}
<form method="POST">
<input type="text" name="username" value="{{coin.user}}" readonly><br><br>
<input type="text" name="amount" value="{{coin.ctp}}" readonly><br><br>
<input type="submit" value="Submit">
{% csrf_token %}
</form>
如果有人可以以学习方式指导我
解决方案
推荐阅读
- angular - Angular 2/4/5/6 [(ngModel)] 后退按钮上未选中单选按钮
- python - 使用 keras 在情感分析中获得奇怪的准确性
- android - 自定义日历布局视图
- android - Android导航组件不显示片段
- c++ - C++ - 模板参数不同但名称相同的奇怪行为
- docker - 如何让 jwilder/nginx-proxy 在 Amazon ECS 上工作?我收到 503 错误
- vue.js - 声明反应属性(从数组推送动态添加组件块)
- java - Java Bean 条件验证
- r - 如何在分组图中使用成对比较线
- node.js - Sequelize - 带有可选范围的急切加载关联