title: Django REST Framework - Class UserSerializer missing "Meta.model" attribute
body: <p>I am following the <a href="http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/" rel="noreferrer">tutorial</a> of Django REST Framework, all is well until part 4 - Authentication &amp; Permissions -> <a href="http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/#adding-login-to-the-browsable-api" rel="noreferrer">Adding login to the Browsable API</a>, I want to browser the users I have created through url <code>http://localhost:8024/users/</code>.</p>
  
  <p>But I get this error message:</p>
  
  <pre><code>AssertionError at /users/
  Class UserSerializer missing "Meta.model" attribute
  Request Method: GET
  Request URL:    http://localhost:8024/users/
  Django Version: 1.10
  Exception Type: AssertionError
  Exception Value:    
  Class UserSerializer missing "Meta.model" attribute
  Exception Location: C:\Python27\lib\site-packages\rest_framework\serializers.py in get_fields, line 976
  Python Executable:  C:\Python27\python.exe
  Python Version: 2.7.11
  Python Path:    
  ['D:\\github\\py2\\dj-rest\\tutorial',
   'C:\\Windows\\system32\\python27.zip',
   'C:\\Python27\\DLLs',
   'C:\\Python27\\lib',
   'C:\\Python27\\lib\\plat-win',
   'C:\\Python27\\lib\\lib-tk',
   'C:\\Python27',
   'C:\\Python27\\lib\\site-packages']
  Server time:    Thu, 10 Aug 2017 11:41:38 +0000
  </code></pre>
  
  <p>But I do have <code>class Meta</code> in my <code>UserSerializer</code> class as showing in "serializers.py" file, please have a look and give me a help.</p>
  
  <h2>Serializer.py</h2>
  
  <pre><code># serializers.py
  from rest_framework import serializers
  from snippets.models import Snippet
  from django.contrib.auth.models import User
  class SnippetSerializer(serializers.ModelSerializer):
      # add a new field
      owner = serializers.ReadOnlyField(source='owner.username')
  
  class Meta:
      model = Snippet
      fields = ('id', 'title', 'code', 'file',
                'linenos', 'language', 'style', 'owner')
  
  
  class UserSerializer(serializers.ModelSerializer):
      """
      Because 'snippets' is a reverse relationship on the User model,
      it will not be included by default when using the ModelSerializer class,
      so we needed to add an explicit field for it.
      """
      snippets = serializers.PrimaryKeyRelatedField(many=True,
  
  
  queryset=Snippet.objects.all())
  
      class Meta:
          module = User
          fields = ('id', 'username', 'snippets')
  </code></pre>
  
  <h2>models.py</h2>
  
  <pre><code>from __future__ import unicode_literals
  
  from django.db import models
  from pygments.lexers import get_all_lexers, get_lexer_by_name
  from pygments.styles import get_all_styles
  from pygments.formatters.html import HtmlFormatter
  from pygments import highlight
  
  LEXERS = [item for item in get_all_lexers() if item[1]]
  LANGUAGE_CHOICES = sorted([(item[1][0], item[0]) for item in LEXERS])
  STYLE_CHOICES = sorted((item, item) for item in get_all_styles())
  
  
  # Create your models here.
  class Snippet(models.Model):
      created = models.DateTimeField(auto_now_add=True)
      title = models.CharField(max_length=100, blank=True, default='')
      code = models.TextField()
      file = models.FileField()
      linenos = models.BooleanField(default=False)
      language = models.CharField(choices=LANGUAGE_CHOICES, default='python', max_length=100)
      style = models.CharField(choices=STYLE_CHOICES, default='friendly', max_length=100)
      owner = models.ForeignKey('auth.User', related_name='snippets', on_delete=models.CASCADE)
      highlighted = models.TextField()
  
      class Meta:
          ordering = ('created',)
  
      def save(self, *args, **kwargs):
          """
          Use the `pygments` library to create a highlighted HTML
          representation of the code snippet.
          """
          lexer = get_lexer_by_name(self.language)
          linenos = self.linenos and 'table' or False
          options = self.title and {'title': self.title} or {}
          formatter = HtmlFormatter(style=self.style, linenos=linenos,
                                    full=True, **options)
          self.highlighted = highlight(self.code, lexer, formatter)
          super(Snippet, self).save(*args, **kwargs)
  </code></pre>
  
  <h2>views.py</h2>
  
  <pre><code>from snippets.models import Snippet
  from snippets.serializers import SnippetSerializer, UserSerializer
  from rest_framework import generics
  from django.contrib.auth.models import User  # for authentication and permissions
  from rest_framework import permissions
  
  class SnippetList(generics.ListCreateAPIView):
      """
      get -&gt; list;
      post -&gt; create;
      """
      permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
      queryset = Snippet.objects.all()
      serializer_class = SnippetSerializer
  
      def perform_create(self, serializer):
          serializer.save(owner=self.request.user)
  
  
  class SnippetDetail(generics.RetrieveUpdateDestroyAPIView):
      """
      get -&gt; retrieve;
      put -&gt; update;
      delete -&gt; destroy;
      """
      permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
      queryset = Snippet.objects.all()
      serializer_class = SnippetSerializer
  
  
  class UserList(generics.ListAPIView):
      queryset = User.objects.all()
      serializer_class = UserSerializer
  
  
  class UserDetail(generics.RetrieveAPIView):
      queryset = User.objects.all()
      serializer_class = UserSerializer
  </code></pre>
  
  <h2>snippets/urls.py</h2>
  
  <pre><code>from django.conf.urls import url
  from rest_framework.urlpatterns import format_suffix_patterns
  from snippets import views
  
  urlpatterns = [
      url(r'^snippets/$', views.SnippetList.as_view()),
      url(r'^snippets/(?P&lt;pk&gt;[0-9]+)/$', views.SnippetDetail.as_view()),
      url(r'^users/$', views.UserList.as_view()),
      url(r'^users/(?P&lt;pk&gt;[0-9]+)/$', views.UserDetail.as_view()),
  ]
  
  # Adding optional format suffixes to our URLs
  urlpatterns = format_suffix_patterns(urlpatterns)
  </code></pre>