2011-03-01 47 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 
相關問題