1

我有一个这样的模型:

class UserSubmission(models.Model):
    mantra = models.CharField(max_length=64)
    ip = models.CharField(max_length=15) # xxx.xxx.xxx.xxx

我想创建一个这样的函数:

def create_submission(request, mantra):
    s = UserSubmission(mantra=mantra)
    ip_meta_entry = 'HTTP_X_REAL_IP' in request.META and 'HTTP_X_REAL_IP' or 'REMOTE_ADDR'
    s.ip = request.META[ip_meta_entry]
    s.save()
    return s

注意:以上纯粹是为了演示目的,而不是我在什么,但我离题了......

放置这样的功能的理想位置在哪里?模型上的类方法?在经理?什么是最佳实践。

4

1 回答 1

2

我倾向于将request在views.py 中使用的函数。除了错误检查之外,您的代码应该可以正常工作。

def create_submission(request, mantra):
    ip_meta_entry = 'HTTP_X_REAL_IP' in request.META and 'HTTP_X_REAL_IP' or 'REMOTE_ADDR'
    s = UserSubmission(
        mantra=mantra,
        ip=request.META[ip_meta_entry])
    s.save()
    return s
于 2011-03-02T04:06:42.987 回答