简体   繁体   English

在 crontab 上尝试了数据库查询集,但它不起作用

[英]Tried databse queryset on crontab but it doesn't work

Crontab works fine on simple task. Crontab 可以很好地处理简单的任务。 eg例如

def test():
    test.objects.create.(name='Dino')

#It also works on this
def test_task()
    if Users_Machine.objects.filter().exists():
        test.objects.create(name='Dino')

but when i tried to query my db with foreignkey it does nothing.但是当我试图用外键查询我的数据库时,它什么也没做。

Have tried this two methods:试过这两种方法:

#request method
def test_task(request):
    if Users_Machine.objects.filter(user=request.user).exists():
        test.objects.create(name='Dino', user=request.user)

#direct methods
def test_task()
    if Users_Machine.objects.filter().exists():
        name=Users_Machine.objects.get()
        test.objects.create(name='Dino', user=name.username)

The Users_Machine.object returns True Users_Machine.object 返回 True

Here is my models这是我的模特

#users_machine model
class Users_Machine(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    Name = models.CharField(max_length=20)

#test model
class test(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    name  = models.CharField(max_length=100)

Please how can i make this work?请问我怎样才能使这项工作?

It would be better if I get to look at User model but for now I am going to assume in the request, you are passing Name field which is present in the UserMachine model and you can create new object in test model as follows:如果我查看User model 会更好,但现在我将假设在请求中,您正在传递UserMachine model 中存在的Name字段,您可以在test model 中创建新的 object,如下所示:

def test_task(request):
    Current_user = User_Machine.objects.get(Name = request.name)  
    if Current_user:
        test.objects.create(name='Dino', user=Current_user)

Can you please add User model as well, that will allow me fine tune the answer (or correct it if this one is wrong)?您能否也添加User model,这样我就可以微调答案(或者如果这个错误则更正)?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM