首页 > 解决方案 > 完成钱包过程后如何更改模型中的用户

问题描述

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>
   

如果有人可以以学习方式指导我

标签: pythonhtmldjangopostgresqlbank

解决方案


推荐阅读