# django-admin-item-owner

Model item always has an owner, and login user can only see owned items.

## Goal

- Set item's owner to current user automatically.

## Install

```bash
pip install django-admin-item-owner
```

## Settings

```python

INSTALLED_APPS = [
    ....
    'django_global_request',
    'item_owner',
    ...
]

MIDDLEWARE = [
    ...
    'django_global_request.middleware.GlobalRequestMiddleware',
    ...
]
```

## Example

example/models.py

```python
from django.db import models
from item_owner.models import ItemOwnerMixin
from item_owner.models import ItemShareMixin

class Category(ItemOwnerMixin, models.Model):
    title = models.CharField(max_length=32)

    def __str__(self):
        return self.title

class Book(ItemOwnerMixin, ItemShareMixin, models.Model):
    category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True, blank=True, related_name="books")
    title = models.CharField(max_length=32)

    def __str__(self):
        return self.title

```

example/admin.py


```python
from django.contrib import admin
from django import forms
from item_owner.admin import ItemOwnerMixin
from item_owner.admin import ItemShareMixin
from .models import Category
from .models import Book



class BookInline(ItemOwnerMixin, ItemShareMixin, admin.TabularInline):
    model = Book

class CategoryAdmin(ItemOwnerMixin, admin.ModelAdmin):
    list_display = ["title"]
    inlines = [
        BookInline,
    ]

class BookAdmin(ItemOwnerMixin, ItemShareMixin, admin.ModelAdmin):
    list_display = ["title"]

admin.site.register(Category, CategoryAdmin)
admin.site.register(Book, BookAdmin)

```

## Releases

### v0.2.0 2020-01-08

- Add ItemShareMixin for models and admins.

### v0.1.0 2019-12-01

- First release.
