我创建了一个自定义用户模型来替换我的Django用户模型。我已经在设置文件中设置-> AUTH_USER_MODEL ='accounts.User',但是当我在其中一种视图中使用时,在这里出现错误
users = settings.AUTH_USER_MODEL.objects.exclude(id = request.user.id)
class HomeView(TemplateView):
template_name = 'home/home.html'
def get(self, request):
form = HomeForm()
posts = Post.objects.all().order_by('-date_created')
users = settings.AUTH_USER_MODEL.objects.exclude(id=request.user.id)
try:
friend = Friend.objects.get(current_user=request.user)
friends = friend.users.all()
except Friend.DoesNotExist:
friends = None
args = {'form': form, 'posts': posts, 'users': users, 'friends': friends}
return render(request, self.template_name, args)
错误如下
users = settings.AUTH_USER_MODEL.objects.exclude(id=request.user.id)
AttributeError: 'str' object has no attribute 'objects'
任何提示都赞赏
答案 0 :(得分:1)
如错误所示,该设置值是一个字符串-您知道它是因为您(正确)在settings.py中将其设置为字符串。
要获取实际模型,可以使用var sheetName = 'Sheet1'
var scriptProp = PropertiesService.getScriptProperties()
function initialSetup () {
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
scriptProp.setProperty('key', activeSpreadsheet.getId())
}
function doPost (e) {
var lock = LockService.getScriptLock()
lock.tryLock(10000)
try {
var doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
var sheet = doc.getSheetByName(sheetName)
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
var nextRow = sheet.getLastRow() + 1
var newRow = headers.map(function(header) {
return header === 'timestamp' ? new Date() : e.parameter[header]
})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow }))
.setMimeType(ContentService.MimeType.JSON)
}
catch (e) {
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}
finally {
lock.releaseLock()
}
}
中的get_user_model
。或者只是导入您的帐户。直接知道用户名,直接创建用户模型。