DJANGO自定义用户模型错误'str'对象没有属性'objects'

时间:2018-10-28 09:06:01

标签: python django

我创建了一个自定义用户模型来替换我的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'

任何提示都赞赏

1 个答案:

答案 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。或者只是导入您的帐户。直接知道用户名,直接创建用户模型。