2011-03-01 81 views
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 

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

哪里会是我处理地方放一个这样的功能?模型上的类方法?在经理?什么是最佳做法。

回答

2

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

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 
相关问题